| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 737 人关注过本帖
标题:一个关于字符串的问题,对于字符串老是弄不清楚
只看楼主 加入收藏
luguolian
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-15
结帖率:100%
收藏
 问题点数:0 回复次数:7 
一个关于字符串的问题,对于字符串老是弄不清楚
#include<stdio.h>
void main()
{    int i;
    char str[80];
    for(i=0;str[i]!='\0';i++)
        scanf("%c",&str[i]);
    for(i=0;str[i]!='\0';i++)
        printf("%c",str[i]);
}
这样编程不能输出字符串,只有改成下面的这种情况才能正常输出这是为什么呢??
for(i=0;i<5;i++)
        scanf("%c",&str[i]);
    for(i=0;i<5;i++)
        printf("%c",str[i]);
搜索更多相关主题的帖子: 字符串 
2013-08-17 18:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不知道你怎样正确了、怎样不正确了。

授人以渔,不授人以鱼。
2013-08-18 13:06
zhujiangtaoc
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2013-8-18
收藏
得分:0 
你的字符数组不会默认在末尾加上'\0'的
2013-08-18 19:43
yljyljylj
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2013-8-25
收藏
得分:0 
因为你的第一程序对字符数组并没有赋初值,你定义了一个长度为80的字符型的数组,内存开辟了这么大的存储空间,但并没有初值啊,你的循环条件str[i]!=\0,这个循环条件是无效的,因为你没定义这个数组的值,你后面才要定义!不知道,你懂了没?
2013-08-25 15:07
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
对于字符数组,scanf函数是不会在数组末尾加上'\0'结尾符的。只有字符串对象才会自动加上结尾符。所以你的判断是无效的。
第二个你已经规定了长度当然是可以的

C++菜鸟
2013-08-25 21:13
holy__shit
Rank: 2
等 级:论坛游民
帖 子:21
专家分:55
注 册:2013-8-23
收藏
得分:0 
回复 楼主 luguolian
把输入的字符当作输入字符串了!

羁绊太多,只会迷失自我!
2013-08-26 19:56
时间流走记忆
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-4
收藏
得分:0 
循环条件str[i]!=\0,这个循环条件是无效的,scanf函数是不会在数组末尾加上'\0'结尾符的。希望对你有帮助
2013-08-28 13:28
chaorenxx
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2013-8-28
收藏
得分:0 
来学习一下,一会试试你的程序
2013-08-28 14:52
快速回复:一个关于字符串的问题,对于字符串老是弄不清楚
数据加载中...
 
   



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

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