关于字符串的输入的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:33:03
{
char *shuru;
shuru="asddas";
printf("输入名称\n");
scanf("%s",shuru);
printf("%s\n",shuru);
return (0);
}
问什么不能输入

{
char *shuru;
shuru="asddas"; //这一句把shuru 指向了个字符串常量,无法赋值
printf("输入名称\n");
scanf("%s",shuru);
printf("%s\n",shuru);
return (0);
}

修改为

{
char *shuru = new char [20];

printf("输入名称\n");
scanf("%s",shuru);
printf("%s\n",shuru);

delete shuru;
return (0);
}

1.首先程序有问题:

shuru="asddas"; 在对指针变量shuru赋值的时候,asddas字符串是没有固定的地址的。应该用数组解决!

2.程序可以改为:

main()
{
char *shuru;

char a[]=" asddas";

shuru=a;

printf("输入名称\n");
scanf("%s",shuru);
printf("%s\n",shuru);
return (0);
}

因为你只是定义了指针,在内存中没有分配空间,但是可以直接
char* shuru ="asddas"; 这只是初始化,一般可以通过new 来到态申请空间
灵 char* shuru=new char[100];

scanf("%s",shuru) 语法错