twinkle_snow
2015-12-12 02:56
采纳率: 76.5%
浏览 1.6k
已采纳

这个bug在哪里,如何为字符型指针数组赋值呢?

程序如下:

 #include<stdio.h>
#include<string.h>
main()
{
    char *a[2];
    char *d;
    printf("请输入两个字符串:");
    scanf("%s%s",a[0],a[1]);
    if(strcmp(a[0],a[1])>0)
    {d=a[0];a[0]=a[1];a[1]=d;}
    printf("%s\n",a);
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • ysuwood 2015-12-12 03:12
    已采纳

    指针数组没初始化

     #include<stdio.h>
    #include<string.h>
    void main()
    {
        char str1[80],str2[80];//修改
        char *a[2];
        char *d;
        a[0]=str1; a[1]=str2;//修改
        printf("请输入两个字符串:");
        scanf("%s%s",a[0],a[1]);
        if(strcmp(a[0],a[1])>0)
        {d=a[0];a[0]=a[1];a[1]=d;}
        printf("%s\n",a[0]);//修改
    }
    
    点赞 评论
  • chenqing12321 2015-12-12 03:07

    应该这样,动态开辟内存两个字符串,每个长度为99,当然你也可以自定义长度,然后就可以进项下面的运算了
    #include
    #include
    int main()
    {
    char **a;
    a=new char*[2];
    a[0]=new char[100];
    a[1]=new char[100];
    char *d;
    printf("请输入两个字符串:");
    scanf("%s%s",a[0],a[1]);
    if(strcmp(a[0],a[1])>0)
    {d=a[0];a[0]=a[1];a[1]=d;}
    printf("%s\n",a);

    delete []a;
    return 0;
    

    }

    点赞 评论

相关推荐 更多相似问题