如何在运行时给出字符串而不是预先初始化为字符指针,通过键盘说char *b;
?
答案 0 :(得分:1)
您可以在编译和运行代码之前使用以下语法定义字符串:
char * str = "Hello World";
通过这种方式,您可以定义一个常量字符串,该字符串可以在非特定行为中更改其内容结果。如果你想要,你可以分配一个字符串指针,然后使用像scanf()
,fgets()
和...这样的函数来获取用户的内容,或者你可以按顺序使用sprintf()
之类的函数在你的程序中填写你的字符串。例如:
char *str = malloc(sizeof(char) * 20);
sprintf(str, "%s", Hello World");
如果要在运行时使用动态大小字符串,可以实现类似C++ vectors的内容 并将你的字符串存储在其中。
答案 1 :(得分:1)
首先,按照C11
标准,章节§7.1.1,
string 是由第一个null终止并包含第一个null的连续字符序列 字符。
并且,根据§6.4.5
字符串文字是一个包含零个或多个多字节字符的序列 双引号,如
"xyz"
。
所以,他们不一样。
但是,要从用户输入字符串,您可以按照以下任一情况
char
数组并扫描输入(scanf()
,fgets()
)。scanf()
或fgets()
来读取用户的输入。