| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 283 人关注过本帖
标题:求教关于将字符串赋值给字符型指针的问题
只看楼主 加入收藏
chenyanx
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-9
结帖率:50%
收藏
 问题点数:0 回复次数:2 
求教关于将字符串赋值给字符型指针的问题
    do{
      fgets(str,23,in);
    char p[100];
    char q[100] ="法向模数 m";
    strcpy (p,str);
        r=strcmp(p,q);
    }while (r!=0);
        fgets(str,23,in);
        printf ("%s\n",str);
程序想实现的功能是查找TXT文档中“法向模数 m”的一行,并输出它的下一行,可运行结果是一个死循环,请大家帮我看下这个程序什么地方不对。。。
搜索更多相关主题的帖子: 字符串 
2012-10-18 18:13
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
注意fgets如果一行小于23个字符则,最后一个字符以'\n'结束。
也就是说如果有一行是"法向模数 m",但是strcmp(p,q)也不会返回0。因为q的最后一个字符并不是'\n'
do{
       fgets(str,23,in);
     char p[100];
     char q[100] ="法向模数 m";
     strcpy (p,str);
    int length = strlen(p);
    if (length > 0 && p[length-1] == '\n')
        p[length-1] = '\0';

     r=strcmp(p,q);
     }while (r!=0);
红色部分为参考。

My life is brilliant
2012-10-18 18:35
chenyanx
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-9
收藏
得分:0 
回复 2楼 lz1091914999
听君一席话,胜读十年书
2012-10-21 20:13
快速回复:求教关于将字符串赋值给字符型指针的问题
数据加载中...
 
   



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

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