我对C很新,只是想知道如何声明一个单词变量。
例如,而
int variable;
只能保存一个整数值,我希望能够声明一个可以保存单词或字符串的变量,例如。
string name = "Joe";
或
string name = "My name is Joe";
然而,这只会让我的程序崩溃,我认为这是因为string
不存在而且与内存有关。
这是我的全部代码:
#include <stdio.h>
int main () {
printf("What is your name?\n");
**string** name;
scanf("%s", &name);
printf("Hello, %s", name);
getch();
return 0;
}
答案 0 :(得分:2)
char name[30]; /* pre-allocated memory of stack */
然后扫描该值。 或
char *name = malloc(sizeof(char) * 30); /* run-time allocation on heap */
我只是在这里使用30,假设输入字符串适合30个字符,你可以增加或减少它,这符合你的愿望。
答案 1 :(得分:2)
声明你的数组如下:
char name[20];
//^^Here you can choose what you want!
我也会读到如下字符串:
scanf(" %s", &name);
//^See the space here! The space is there so if a '\n' is still in the buffer it doesn't get read in for the name!
顺便说一句:也许你想看看这里:http://www.cplusplus.com/doc/tutorial/
答案 2 :(得分:1)
您可以使用该数组存储该值。声明数组。
喜欢这个char name[20];
scanf("%s", name);
答案 3 :(得分:1)
这将存储最大值。 50个字符长的字符串
char word [50+1];
但是如果你想在运行时定义大小,请使用:
char *word = (char*)malloc(sizeof(char)*length);
答案 4 :(得分:0)
你有两种选择。
char
数组。实施例。
char cArray[16] = "Hello"; //will have 16 elements, initialized 5 with hello
或
char cArray[ ] = "Hello"; //number of char element is 6, considering terminating null.
char
变量的指针。示例:
char * cPtr = NULL;
cPtr = malloc(16); //again, 16 char elements
注意:char
数组,何时用作字符串,必须以空值终止。