鱼C论坛

 找回密码
 立即注册
查看: 1488|回复: 3

[已解决]char型数组小问题

[复制链接]
发表于 2015-11-19 03:17:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
char test[]="hello world test     desk"

如何实现字符串间的 '\0' 变成一个?

就是变成char test[]="hello world test desk"
最佳答案
2015-11-19 09:28:49
中间的是空格ascii是0x20 \0在desk的k的后面看不到的,我猜你的意思是把字符串中间2个或者以上的空格变成1个


QQ截图20151119092905.png


  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.         char test[]="hello  world   test     desk";
  6.         char out[256];//输出的数组
  7.         int val=0;//计数器
  8.         for (int i=0;i<strlen(test);i++)//循环test中的每个字符
  9.         {
  10.                 //当连续遇到2个空格就跳过一个
  11.                 if (test[i]==0x20 && test[i+1]==0x20)
  12.                 {
  13.                         continue;
  14.                 }
  15.                 else
  16.                 {
  17.                         //正常情况或者是一个空格
  18.                         out[val]=test[i];
  19.                         val++;
  20.                 }
  21.         }
  22.         out[val]=0;//输出字符最后截断
  23.         printf("原来的字符串是\r\n%s\r\n",test);
  24.         printf("修改后字符串是\r\n%s\r\n",out);
  25.         system("pause");
  26. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-11-19 09:28:06 | 显示全部楼层
先比较再替换,思路是这个样子的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-19 09:28:49 | 显示全部楼层    本楼为最佳答案   
中间的是空格ascii是0x20 \0在desk的k的后面看不到的,我猜你的意思是把字符串中间2个或者以上的空格变成1个


QQ截图20151119092905.png


  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.         char test[]="hello  world   test     desk";
  6.         char out[256];//输出的数组
  7.         int val=0;//计数器
  8.         for (int i=0;i<strlen(test);i++)//循环test中的每个字符
  9.         {
  10.                 //当连续遇到2个空格就跳过一个
  11.                 if (test[i]==0x20 && test[i+1]==0x20)
  12.                 {
  13.                         continue;
  14.                 }
  15.                 else
  16.                 {
  17.                         //正常情况或者是一个空格
  18.                         out[val]=test[i];
  19.                         val++;
  20.                 }
  21.         }
  22.         out[val]=0;//输出字符最后截断
  23.         printf("原来的字符串是\r\n%s\r\n",test);
  24.         printf("修改后字符串是\r\n%s\r\n",out);
  25.         system("pause");
  26. }
复制代码


评分

参与人数 1荣誉 +1 鱼币 +2 收起 理由
阴影中的曙光 + 1 + 2 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-11-21 15:32:38 | 显示全部楼层
一起研究一下呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-19 02:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表