2008
11-05

 


main()
{   char a[20],b[20],c[40],*p_a=a,*p_b=b,*p_c=c;
    scanf(“%s”,a);
    scanf(“%s”,b);
    while(*p_a!=’\0′)
       { *p_c=*p_a;
         p_c++; p_a++;
       }
    while(*p_b!=’\0′)
       { *p_c=*p_b;
         p_c++; p_b++;
       }
    printf(“%s”,p_c);
    getch();
}


把两个字符串连成一个字符串,,为什么我总不能得到正确答案


一个小问题》有 2 条评论

  1. wentao308 说:

    main()
    {   char a[20],b[20],c[40],*p_a=a,*p_b=b,*p_c=c;
        scanf(“%s”,a);
        scanf(“%s”,b);
        while(*p_a!=’\0′)
           { *p_c=*p_a;
             p_c++; p_a++;
           }
        while(*p_b!=’\0′)
           { *p_c=*p_b;
             p_c++; p_b++;
           }
        *p_c=’\0′;

        printf(“%s”,c);

        getch();
    }

    应该是这样,字符串要以’\0′结尾,同时,你用printf(“%s”,p_c)输出时,p_c已经不是字符串数组的首地址了.

  2. w19800605 说:

    谢谢了,,,看来的想的还是不够周密呀

留下一个回复