题
如何申报在C字符串变量?
背景
在我的追求学习的基础知识Ç ,我想端口我最老的一个的Python程序, Bob
,到C.在程序,脚本询问他或她自己的信息的用户,然后吐出来响应。 几乎所有这些变量的使用raw_input
他们的信息-这些变量是字符串。 但是,我没有发现任何方式来声明C变量。
码
到目前为止,我已经尝试声明变量类型的char
和int.
下面是代码,在您的休闲切换类型。
int main(int argc, const char * argv[])
{
int name;
printf("What is your name?");
scanf("%s",&name);
printf("Your name is %s", name );
return 0;
}
错误信息
当我运行这段代码, Xcode
返回一些奇怪的东西。 在globidty-gloop的这部分被高亮显示。
0x7fff96d2b4f0: pcmpeqb(%rdi), %xmm0
Lasty, 这个雅虎回答说,我不得不使用一种叫做character array
。 它被张贴在5年前,所以我认为有一个更好的办法。
编辑
我下面的教程C程序设计 。
char name[60];
scanf("%s", name);
编辑:限制输入长度到59个字符(加上终止0):
char name[60];
scanf("%59s", name);
在C语言中,你不能直接申报,如Java和其他语言的字符串变量。 你将不得不使用字符数组或指针来声明字符串。
char a[50];
printf("Enter your string");
gets(a);
要么
char *a;
printf("Enter your string here");
gets(a);
要么
char a[60];
scanf("%59s",a);
你把int是不是一个字符串,字符串看起来像“字符的myString [20]”。 不喜欢“INT名”,这是一个整数,而不是一个字符串或字符。 这是你想要的代码:
int main(int argc, const char * argv[])
{
char name[9999];
printf("What is your name?\n");
scanf("%s", name);
system("cls");
printf("Your name is %s", name);
return 0;
}
测试的XCODE
你可以这样做:
int main(int argc, const char * argv[])
{
int i;
char name[60]; //array, every cell contains a character
//But here initialize your array
printf("What is your name?\n");
fgets(name, sizeof(name), stdin);
printf("Your name is %s", name );
return 0;
}
初始化数组,是很好的避免错误
for(i=0;i<60;i++){
name[i]='\0'; //null
}
代替int
用于INT号(1,2,3,ECC); 对于浮点数,而不是必须使用float
通常我们使用在scanf“&”但你不应该在这里之前变量“名”使用它。 因为“名”是一个字符数组。 当一个字符数组的名称时不使用的“[]”,则表示该数组的地址。
更换INT名; 至 - 。 炭名称[60];
#include <stdio.h>
int main()
{
char name[648];
printf("What is your name?");
scanf("%s", name);
printf("Your name is %s", name );
return 0;
}