| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:[新手求助],在打印字符串的时候怎么消除最后的\0?
只看楼主 加入收藏
GhostClock
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-29
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:5 
[新手求助],在打印字符串的时候怎么消除最后的\0?
程序代码:
// 定义一个字符数组c[10],并初始化数组,将字符数组内容倒序输出。
//。注意输入使用scanf输入 
#include <stdio.h>

int main(void)
{
/*定义要处理的数组*/
char arr[10];

/*辅助处理的临时变量*/
char i, j, t;

/*循环初始化数组的每个元素*/
for(i = 0; i < 10; i++)
scanf("%c",&arr[i]);

/*将数组的前后元素反序*/
for(i = 0; i < 10/2; i++)
{ 
j = 10 - 1 - i;
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}

/*循环输出每个元素*/
for(i = 0; i <= 9; i++)
printf("%5c",arr[i]);

printf("\n");

return 0;
}



图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 字符串 
2015-04-04 16:19
GhostClock
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-29
收藏
得分:0 
有些编译器不会显示,但是最后的\0确实存在呀,高手们,怎么消除呀,困扰我好久了
2015-04-04 16:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
先不要问如何消除'\0'的问题,你整个解法压根儿就是错的。

授人以渔,不授人以鱼。
2015-04-04 19:16
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:1 
回复 楼主 GhostClock
1.你想把数组里的元素头尾对调一次,然后从数组0开始输出是吗?为什么不直接(i = 10;10>=0;i--)呢?从尾开始输出到0.
2.至于那个/0问题,是字符串才带,如果要去掉,那(i = 10-1;10>=0;i--)就可以了,至于照顾可能不满10字符的数组,那可以for里做if判断就完事了,例如if (arr[i] != '/n')则printf("%c",arr[i]);就可以了。
3.最后,你数组定义的时候没初始化啊,所以里面老是乱七八糟的东西啊,可以先遍历,全赋予值-1就好了。(这是我的做法)

4.所以,你代码可以这样:
    1.声明数组变量并初始化。
    2.实现录入字符并赋予数组。
    3.遍历数组输出,判断以'/0'来结束。如果要反着输出,那就从'/0'的前一个元素开始输出,直到arr[0]。


[ 本帖最后由 kin3z 于 2015-4-4 20:02 编辑 ]
2015-04-04 20:01
GhostClock
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-29
收藏
得分:0 
回复 3楼 TonyDeng
可是我在MAC的vi里面编辑并编译的时候没有任何问题呀,那个\0是有,只是没显示出来罢了,但是在这个编译器里面就打印后就有\0了
2015-04-06 14:09
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:1 
看来你还不熟悉字符串在数组(内存)里的存储规则。你这个反序算法是针对整个数组的,不是针对字符串,要对字符串反序得先知道字符串长度。
2015-04-06 14:45
快速回复:[新手求助],在打印字符串的时候怎么消除最后的\0?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038874 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved