这篇文章主要介绍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<stdio.h> #include<string.h> void _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语言中指针的使用案例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。