为什么我输入一个字符串,但是无法打印出来?
#include <stdio.h>int main()
{
char *player={"zhao","50","1","qian","60","2","sun","70","3"};
int i,j;
char *name;
scanf("%s",name);
player=name;
printf("%s",player);
return 0;
} 你没按要求贴代码吧{:5_102:} #include <stdio.h>
int main()
{
char player;
char name;
scanf("%c",&name);
player=name;
printf("%c",player);
return 0;
}
改成这样可以输出一个字符 #include <stdio.h>
int main()
{
char name;
scanf("%s",name);
printf("%s",name);
return 0;
}
这样直接就可以输入一个字符串再输出,你写的那个代码,。。。还是慢慢学吧 王之叹息 发表于 2021-5-18 19:01
这样直接就可以输入一个字符串再输出,你写的那个代码,。。。还是慢慢学吧
你没有理解我的意思,你的程序得复杂程度太低了,没有什么帮助。 我。。。。。。。,我虽然还没学那么好,但我感觉你那个代码很多地方都不对啊,程序不是不报错就行的,你那个虽然只有警告,但很多都感觉不太对。。。。 横行无忌 发表于 2021-5-20 20:56
你没有理解我的意思,你的程序得复杂程度太低了,没有什么帮助。
好吧好吧,我的错,看下面这个应该行了
#include <stdio.h>
int main()
{
char *player={"zhao","50","1","qian","60","2","sun","70","3"};
int i,j;
char *name;
scanf("%s",&name);
player=name;
printf("%c",player);
return 0;
}
首先scanf函数后边的变量前要加&符号(尽管你定义了char *name但它本质上还是变量)。然后name是个char类型的,中间输入的时候就是直接输进name里了,所以最后输出应该也只能是输出一个字符,所以把%s改为%c
有什么想说可以再回
最后,能不能给个最佳答案呢亲{:5_92:}{:5_92:} 王之叹息 发表于 2021-5-20 22:05
好吧好吧,我的错,看下面这个应该行了
首先scanf函数后边的变量前要加&符号(尽管你定义了char *name ...
我还没整明白,整明白了一定发答案。 横行无忌 发表于 2021-5-20 23:17
我还没整明白,整明白了一定发答案。
{:10_266:} 横行无忌 发表于 2021-5-20 20:56
你没有理解我的意思,你的程序得复杂程度太低了,没有什么帮助。
兄弟,我估计也没其他人来了{:10_256:} player是一个指针数组
char *name; 语句会定义一个指针,该指针未被初始化,是个无效的地址,会引起非法访问
你的程序指针是一个没有分配内存的,你需要给他分配一个地址然后才可以往里面写值
不要给任何没有初始化的指针的赋值
或者直接 char*name =“字符串” ; 初始化把常量地址给name
本帖最后由 1055741510 于 2021-5-21 20:00 编辑
#include <stdio.h>
int main()
{
char *player={"zhao","50","1","qian","60","2","sun","70","3"};
int i,j;
char *name; //改成 char name,char *name仅为字符串指针 scanf并不能往里面添加字符
scanf("%s",name);
player=name;
printf("%s",player);
return 0;
}
char *name = "abcd";//正确
char *name = {a,b,c,d,'\0'};//错误
char name = {a,b,c,d,'\0'};//正确
页:
[1]