欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 字符串逆序(c语言)

字符串逆序(c语言)

2025/9/28 7:04:15 来源:https://blog.csdn.net/2402_86350741/article/details/143368197  浏览:    关键词:字符串逆序(c语言)



错误代码

#include<stdio.h>//字符串逆序
void reverse(char arr[], int n)
{int j = 0;//采用中间值法//访问数组中第一个元素和最后一个元素//交换他们的值,从而完成了字符串逆序//所以这个需要临时变量for (j = 0; j <= n / 2; j++){char temp = arr[j];arr[j] = arr[n - 1 - j];arr[n - 1 - j] = temp;}//直接打印整个数组printf("%s",arr);
}int main()
{char arr[10000];int i = 0;//直接输入整个数组scanf("%s", arr);int sz = 0;//这个循环计算的是除了\0后这个数组元素的个数while (arr[sz] != '\0'){sz++;}//函数调用reverse(&arr, sz);return 0;
}
//

运行结果

为什么呢

因为scanf在读取输入时,不能读取空白字符(空格,制表符,换行符),遇到这些就会停止读取

所以到i就停止读取了

 知识引用:

gets函数和fgets函数的区别

正确代码

#include <stdio.h>
#include <string.h>int main() 
{char str[10001];//读取键盘中输入的字符,包括空格//需要引头文件    fgets(str, 10001, stdin);int len = strlen(str);//因为fgets把\n读取了,所以需要去除\n的情况if (str[len - 1] == '\n') {len--;}for (int i = 0; i < len / 2; i++) {// 利用中间值进行交换char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}//直接打印整个数组printf("%s\n", str);return 0;
}

程序运行


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词