kid_0203
2015-11-05 11:32
采纳率: 85.1%
浏览 1.9k
已采纳

求大神帮忙看一下c语言字符题目~~

从键盘上输入一个满足格式(形如“ A1,234 ” )要求的字符串(其长度不超过20),编程将其从分割符(“,”)位置分割成两个部分(如 A1 和 234 两个字符串),并在屏幕上分两行顺序显示分割后的结果(输入输出格式示例如下)。

输入: A 1, 234

输出 1 : A1

输出 2 : 234

方法1:不真正分隔,只是寻找分隔标志(逗号),然后用'\n'替代实现分两行输出。

方法2:真正以逗号作为分隔符,将字符串分成两个子串。

 #include<stdio.h>   
int main()   
{   
char c[100],a=0,b=0,d=0,i=0;   
gets(c);   
while(c[i]!=',');   
{printf("%c",c[i]);   
i++;}   
printf('\n');   
i++;   
while(c[i]!='\0')   
{printf("%c",c[i]);   
i++;   
}   
printf('\n');   
}  

我写的代码输出不了结果 请问为啥

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • ysuwood 2015-11-05 11:53
    已采纳
     #include <stdio.h>
    int main()   
    {   
        char c[100],a=0,b=0,d=0,i=0;   
        gets(c);   
        while(c[i]!=',') //这有问题
        {
            printf("%c",c[i]);   
            i++;
        }   
        printf("\n");   //这有问题
        i++;   
        while(c[i]!='\0')   
        {
            printf("%c",c[i]);   
            i++;   
        }   
        printf("\n");   //这有问题
    }  
    
    
    已采纳该答案
    打赏 评论
  • shauew 2015-11-05 11:51

    可以试着用 scanf 代替 gets 试试看

    打赏 评论
  • 纹枰老妖 2015-11-05 12:07

    题主,请看您代码的最后一句【printf('\n');】,这一句很明显是个错误,因为里面的【'\n'】表示一个字符,而printf函数的第一个参数必须是字符串形式!
    所以最后一句代码应该改成【printf("\n");】,因为双引号里面的内容才代表一个字符串

    打赏 评论
  • 纹枰老妖 2015-11-05 12:08

    还有,中间的那行也是【printf('\n');】同样的错误,两个都改过来就可以运行了

    打赏 评论
  • 苏苏落 2015-11-05 12:59

    #include

    int main()

    {

    char c[100],a=0,b=0,d=0,i=0;

    gets(c);

    while(c[i]!=','); //去掉;
    {printf("%c",c[i]);

    i++;}

    printf('\n'); //“\n”
    i++;

    while(c[i]!='\0') //"\n"
    {printf("%c",c[i]);

    i++;

    }

    printf('\n');

    //加上 return 0;
    }

    打赏 评论
  • 苏苏落 2015-11-05 13:01
      #include<stdio.h>   
    int main()   
    {   
    char c[100],a=0,b=0,d=0,i=0;   
    gets(c);   
    while(c[i]!=',');   //去掉;
    {printf("%c",c[i]);   
    i++;}   
    printf('\n');    //“\n”
    i++;   
    while(c[i]!='\0')   
    {printf("%c",c[i]);   
    i++;   
    }   
    printf('\n');    //“\n”
    
    //加上 return 0;
    }  
    
    

    我想知道你用的是什么编译器,gets()函数在ISO/IEC 9899 2011(C11)标准中被移除

    打赏 评论
  • 苏苏落 2015-11-05 13:44
    int main()
    {
        char c[100], a = 0, b = 0, d = 0, i = 0;
        while ((c[i] = getchar()) != '#')
        {
            i++;
        }
        i = 0;
        while (c[i] != ',')
        {
            printf("%c", c[i]);
            i++;
        }
        printf("\n");
        i++;
        while (c[i] != '#')
        {
            printf("%c", c[i]);
            i++;
        }
        printf("\n");
        return 0;
    } 
    

    仅作参考

    打赏 评论
  • havedream_one 2015-11-05 13:50

    while多了一个分号啊,成了死循环

    打赏 评论
  • havedream_one 2015-11-05 14:16

    while(c[i]!=',');
    i=0,c[0]!=','为真,因此执行while,而没有循环体,所以继续下次检测c[0]!=',',为真,以此重复

    打赏 评论

相关推荐 更多相似问题