如何给字符指针的字符串值?

时间:2016-02-13 08:16:24

标签: c pointers

如何在运行时给出字符串而不是预先初始化为字符指针,通过键盘说char *b;

2 个答案:

答案 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()来读取用户的输入。