在C中将Char转换为String

use*_*575 18 c string char

如何将字符转换为C中的字符串.我正在使用c = fgetc(fp)它返回一个字符.但是我需要在strcpy中使用一个字符串

Ada*_*dam 10

为了回答这个问题,我没有读太多其他内容

char str[2] = "\0"; /* gives {\0, \0} */
str[0] = fgetc(fp);
Run Code Online (Sandbox Code Playgroud)

您可以在循环中使用第二行,使用char作为字符串来保留其他字符串操作.


Lih*_*ihO 5

使用fgetc(fp)只能打电话strcpy(buffer,c);似乎不对.

您可以自己构建此缓冲区:

char buffer[MAX_SIZE_OF_MY_BUFFER];

int i = 0;
char ch;
while (i < MAX_SIZE_OF_MY_BUFFER - 1 && (ch = fgetc(fp)) != EOF) {
    buffer[i++] = ch;
}
buffer[i] = '\0';  // terminating character
Run Code Online (Sandbox Code Playgroud)

请注意,这取决于您将读取少于MAX_SIZE_OF_MY_BUFFER字符的事实


Tho*_*sin 5

您可以做许多给定的答案,但如果您只是想这样做以便能够将其与 一起使用strcpy,那么您可以执行以下操作:

...
    strcpy( ... , (char[2]) { (char) c, '\0' } );
...
Run Code Online (Sandbox Code Playgroud)

(char[2]) { (char) c, '\0' }部分将从字符中临时生成以空字符结尾的字符串c

这样您就可以避免为您已经拥有的东西创建新变量,前提是您只需要一次该单字符字符串

  • 这是我能想象的复制字符串在语法上最晦涩的方法。不是我建议新手的。 (2认同)
  • @CareyGregory 我同意这一点,但我认为我的解释简短易懂;让它对任何人来说都足够了。 (2认同)

小智 5

我用它来将 char 转换为字符串(示例):

char c = 'A';
char str1[2] = {c , '\0'};
char str2[5] = "";
strcpy(str2,str1);
Run Code Online (Sandbox Code Playgroud)


Tai*_*iki 2

像这样的代码应该可以工作:

int i = 0;
char string[256], c;
while(i < 256 - 1 && (c = fgetc(fp) != EOF)) //Keep space for the final \0
{
    string[i++] = c;
}
string[i] = '\0';
Run Code Online (Sandbox Code Playgroud)

  • 最好输入“\0”而不是“0”,因为“\0”明确表示“我正在此处分配终止字符”。 (2认同)
  • 我认为 C 标准宁愿提到 0 而不是 '\0',它只是被解释为 0,但我想这取决于你的编码风格。我最近做了很多字符串操作,我已经习惯了 0,因为它写起来更快^^ (2认同)