如何将字符转换为C中的字符串。我目前正在使用c = fgetc(fp)
返回一个字符。 但是我需要在strcpy中使用一个字符串
为了回答这个问题,我没有读太多其他内容
char str[2] = " "; /* gives { , } */ str[0] = fgetc(fp);
您可以在循环中使用第二行,使用char作为字符串来保留其他任何字符串操作。
使用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] = ' '; // terminating character
请注意,这取决于您将读取少于MAX_SIZE_OF_MY_BUFFER
字符的事实
您可以执行许多给定的答案,但如果您只是想将其与strcpy
一起使用,那么您可以执行以下操作:
... strcpy( ... , (char[2]) { (char) c, ' ' } ); ...
(char[2]) { (char) c, ' ' }
部分将从字符c
临时生成以null结尾的字符串。
通过这种方式,您可以避免为手中已有的东西创建新变量,前提是您只需要一次单字符串 。
像这样的代码应该工作:
int i = 0; char string[256], c; while(i < 256 - 1 && (c = fgetc(fp) != EOF)) //Keep space for the final { string[i++] = c; } string[i] = ' ';
我用它来将char转换为字符串(例子):
char c = 'A'; char str1[2] = {c , ' '}; char str2[5] = ""; strcpy(str2,str1);
这是一个古老的问题,但我会说没有一个答案真的符合OP的问题。 他想要/需要做的就是:
char c = std::fgetc(fp); std::strcpy(buffer, &c);
这里的相关方面是, strcpy()
的第二个参数不需要是char数组/ c-string。 实际上,根本没有参数是char或char数组。 它们都是char指针:
strcpy(char* dest, const char* src);
- 它的值必须是可写char数组元素的内存地址(之后至少还有一个元素)。
- 它的值可以是单个char的地址,也可以是char数组中的元素的地址。 该数组必须在其余元素(以
src
开头)中包含特殊字符
dest :
非const char指针
src :
一个const char指针