| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 531 人关注过本帖
标题:为什么用这个循环语句输入不了字符串啊?
只看楼主 加入收藏
a47665335
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-25
结帖率:85.71%
收藏
已结贴  问题点数:17 回复次数:7 
为什么用这个循环语句输入不了字符串啊?
#include<stdio.h>
void main()
{
char a[80];
int i;
a[0]='s';
for(i=0;a[i]!='\n';i++)
scanf("%c",&a[i]);

}

点回车结束不了..
请前辈指点错误..
搜索更多相关主题的帖子: 字符串 
2014-12-31 13:59
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
scanf("%c",&a[i]);
为啥要用%c呢
用%s 不是更好

DO IT YOURSELF !
2014-12-31 14:30
a47665335
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-25
收藏
得分:0 
以下是引用wp231957在2014-12-31 14:30:14的发言:

scanf("%c",&a);
为啥要用%c呢
用%s 不是更好

因为a【i】是元素啊。然后向记下字符数量, 就用的循环语句..
2014-12-31 14:34
a47665335
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2014-11-25
收藏
得分:0 
for(i=0;a[i]=(getchar()!='\n');i++); 这个也不行!
2014-12-31 14:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
以下是引用a47665335在2014-12-31 14:34:44的发言:

 
因为a【i】是元素啊。然后向记下字符数量, 就用的循环语句..

如果你只是想输入输出字符串 用类似下面的代码实现

程序代码:
#include <stdio.h>

int main(void)
{
    char a[80];
    scanf("%s", a);
    printf("%s\n", a);
    return 0;
}


至于你说的原因 我没明白 初学建议就用我这种方法实现 如果你有更高级的需求 不妨说说看 但输入输出字符串 这个就可以了
2014-12-31 16:49
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:5 
按楼主的意图代码如下:

程序代码:
#include<stdio.h>
int main(void) {
    char a[80];
    int i;
    a[0] = 's';

    for(i = 0; i<79; i++){
        scanf("%c", &a[i]);
        if(a[i]=='\n') {
            a[i+1] = '\0';
            break;
        }
    }
    puts(a);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2014-12-31 18:20
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
收藏
得分:5 
gets()不行吗
2014-12-31 20:43
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
我还是再完善一下代码吧 或许更符合楼主的要求

程序代码:
#include<stdio.h>
int main(void) {
    char a[80];
    int i;

    for(i = 0; i<79; i++){
        scanf("%c", &a[i]);
        if(a[i]=='\n') {
            a[i] = '\0';
            break;
        }
    }
    puts(a);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2014-12-31 20:48
快速回复:为什么用这个循环语句输入不了字符串啊?
数据加载中...
 
   



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

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