千家信息网

C语言中指针的使用案例

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍C语言中指针的使用案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、利用指针倒序字符串void _reversal(char* left, char* ri
千家信息网最后更新 2025年11月11日C语言中指针的使用案例

这篇文章主要介绍C语言中指针的使用案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、利用指针倒序字符串

void _reversal(char* left, char* right){  while (left < right)  {      char tmp = *left;      *left = *right;      *right = tmp;      left++;      right--;  }}

通过上述代码不难看出,left与right分别代表一个字符数组的首端和尾端,通过中间变量 tmp进行首尾交换,left++中的left是char*类型,同时也可以看成为一维数组left[ i++],因此,移动的原理就是通过++移向下一个元素位置所在的地址right同理可得是移向上一个元素位置所在的地址。

二、题目实例

对于一个较大的整数 N(1<=N<=2,000,000,000)

比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这个数 字每三位加一个逗号,它会变得更加易于朗读。因此,这个数字加上逗号成如下的 模样:980,364,535请写一个程序帮她完成这件事情

输入描述:

一行一个整数 N

输出描述:

一行一个字符串表示添加完逗号的结果

#define _CRT_SECURE_NO_WARNINGS 1#include#includevoid _reversal(char* left, char* right){        while (left < right)        {                char tmp = *left;                *left = *right;                *right = tmp;                left++;                right--;        }}int main(){        char arr1[2000] = { 0 };        gets_s(arr1);        int len = strlen(arr1);        //翻转字符串        _reversal(arr1, arr1 + len - 1);        char arr2[2000] = { 0 };        char* pr1 = arr1;        char* pr2 = arr2;        int i = 0;        while (i <= len / 3 + 1)        {                pr2[0] = pr1[0];                pr2[1] = pr1[1];                pr2[2] = pr1[2];                pr2[3] = ',';                pr1 += 3;                pr2 += 4;                i++;        }        int len1 = strlen(arr2);        //翻转字符串        _reversal(arr2, arr2 + len1 - 1);        if (arr2[0] == ',')        {                char* arr3 = arr2 + 1;                printf("%s", arr3);        }        else        {                printf("%s", arr2);        }        return 0;}

就本题而言,为什么我们在插入的时候需要进行倒序呢,通过观察我们发现,插入的方式是从个位开始的,因此,从逻辑上我们需要将它进行倒序来满足这个基本原理,不然可能会出现最后两个数(或者是一个数)前面会有逗号产生,这是规则不允许的。

以上是"C语言中指针的使用案例"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0