如何将字符转换为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作为字符串来保留其他字符串操作.
使用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字符的事实
您可以做许多给定的答案,但如果您只是想这样做以便能够将其与 一起使用strcpy,那么您可以执行以下操作:
...
strcpy( ... , (char[2]) { (char) c, '\0' } );
...
Run Code Online (Sandbox Code Playgroud)
该(char[2]) { (char) c, '\0' }部分将从字符中临时生成以空字符结尾的字符串c。
这样您就可以避免为您已经拥有的东西创建新变量,前提是您只需要一次该单字符字符串。
小智 5
我用它来将 char 转换为字符串(示例):
char c = 'A';
char str1[2] = {c , '\0'};
char str2[5] = "";
strcpy(str2,str1);
Run Code Online (Sandbox Code Playgroud)
像这样的代码应该可以工作:
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)
| 归档时间: |
|
| 查看次数: |
105803 次 |
| 最近记录: |