| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 326 人关注过本帖
标题:求解! 为什么这样呀!
只看楼主 加入收藏
huangwei1329
Rank: 2
等 级:论坛游民
帖 子:27
专家分:13
注 册:2011-10-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
求解! 为什么这样呀!
#include<stdio.h>
#include<string.h>
#define CL 255

int main(void)
{
    int si_bl = 0;
    char c_bl[CL];
    char c_bl1;



    printf("请输入一句话:");
    scanf("%c", &c_bl1);
    while(c_bl1 != '\n')
    {
        c_bl[si_bl] = c_bl1;
        si_bl++;
        scanf("%c", &c_bl1);   
    }
    for(si_bl = strlen(c_bl) - 1; si_bl >= 0; si_bl--)
        printf("%c", c_bl[si_bl]);
    printf("\n");
    getchar();

return 0;
}
为什么输入出是这样的;全是烫 后面才是我的输入 还少了最后那个字

[ 本帖最后由 huangwei1329 于 2012-5-21 16:26 编辑 ]
搜索更多相关主题的帖子: include return 
2012-05-21 16:22
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:20 
输入完后  补个\0
程序代码:
while(c_bl1 != '\n')
    {
        c_bl[si_bl] = c_bl1;
        si_bl++;
        scanf("%c", &c_bl1);   
    }

//this
c_bl[si_bl]='\0';




    for(si_bl = strlen(c_bl) - 1; si_bl >= 0; si_bl--) 



或者 memset下

[ 本帖最后由 icysky 于 2012-5-21 17:26 编辑 ]

不管怎么走、总有一个终点...
2012-05-21 17:24
huangwei1329
Rank: 2
等 级:论坛游民
帖 子:27
专家分:13
注 册:2011-10-18
收藏
得分:0 
没看明白       能说下原因吗     谢谢
2012-05-21 17:37
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 3楼 huangwei1329
声明的数组未初始化前   里面内容随即    这个你理解吧   
你输入多少元素  相当于 "初始化"这个数组多少元素    后面的 还是随即的  不是 \0  这个你明白吧?

不管怎么走、总有一个终点...
2012-05-21 23:18
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:0 
回复 3楼 huangwei1329
  空字符 没有 用把   他是  printf("%c",c_bl[si_bl]);
2012-05-21 23:33
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#define CL 255

int main(void)
{
    int si_bl = 0;
    char c_bl[CL];
    char c_bl1;



    printf("请输入一句话:");
    //scanf("%c", &c_bl1);  修改这里
    while(si_bl < (sizeof(si_bl)/sizeof(si_bl[0])))
{
    scanf("%c", &c_bl1);
    si_bl++;
}         
    while(c_bl1 != '\n')
    {
        c_bl[si_bl] = c_bl1;
        si_bl++;
        scanf("%c", &c_bl1);   
    }
    for(si_bl = strlen(c_bl) - 1; si_bl >= 0; si_bl--)
        printf("%c", c_bl[si_bl]);
    printf("\n");
    getchar();

return 0;
}
2012-05-21 23:35
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#define CL 255

int main(void)
{
    int si_bl = 0;
    char c_bl[CL];
    char c_bl1;



    printf("请输入一句话:");

    scanf("%s", c_bl); // scanf函数 %c 是获取字符  %s 是获取字符串
   /*多余部分没有用 我也不知道你要表达什么*/
    //while(c_bl1 != '\n')
    //{
     //   c_bl[si_bl] = c_bl1;
     //   si_bl++;
     //   scanf("%c", &c_bl1);   
   // }
    for(si_bl = strlen(c_bl) - 1; si_bl >= 0; si_bl--)
        printf("%c", c_bl[si_bl]);
    printf("\n");
    getchar();

return 0;
}
2012-05-21 23:43
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 5楼 nzxiansheng
它使用的strlen(c_bl)  来控制的循环输出长度
不加空字符 那strlen会返回多长呢?

不管怎么走、总有一个终点...
2012-05-22 06:34
huangwei1329
Rank: 2
等 级:论坛游民
帖 子:27
专家分:13
注 册:2011-10-18
收藏
得分:0 
明白了   谢谢
2012-05-22 08:59
快速回复:求解! 为什么这样呀!
数据加载中...
 
   



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

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