[英]Convert Char to String in C
如何在 C 中將字符轉換為字符串。我目前正在使用
c = fgetc(fp)<\/code>返回一個字符。
但我需要在 strcpy 中使用一個字符串
"
為了回答這個問題,我沒有讀太多其他內容
char str[2] = "\0"; /* gives {\0, \0} */
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] = '\0'; // terminating character
請注意,這取決於您將讀取少於MAX_SIZE_OF_MY_BUFFER
字符的事實
您可以執行許多給定的答案,但如果您只是想將其與strcpy
一起使用,那么您可以執行以下操作:
...
strcpy( ... , (char[2]) { (char) c, '\0' } );
...
(char[2]) { (char) c, '\\0' }
部分將暫時從字符c
生成以null結尾的字符串。
通過這種方式,您可以避免為手中已有的東西創建新變量,前提是您只需要一次單字符串 。
像這樣的代碼應該工作:
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';
我用它來將char轉換為字符串(例子):
char c = 'A';
char str1[2] = {c , '\0'};
char str2[5] = "";
strcpy(str2,str1);
//example
char character;//to be scanned
char merge[2];// this is just temporary array to merge with
merge[0] = character;
merge[1] = '\0';
//now you have changed it into a string
這是一個古老的問題,但我認為沒有一個答案真的符合OP的問題。 他想要/需要做的就是:
char c = std::fgetc(fp);
std::strcpy(buffer, &c);
這里的相關方面是這樣的事實,即strcpy()
的第二個參數不需要是char數組/ c-string。 實際上,根本沒有參數是char或char數組。 它們都是char指針:
strcpy(char* dest, const char* src);
dest :
非const char指針
src :
一個const char指針
src
開始)中包含特殊字符\\0
,以標記應復制的c字符串的結尾。
這是一個有效的例子:
printf("-%s-", (char[2]){'A', 0});
這將顯示-A-
僅供你在C中使用字符串數據類型。使用字符數組來存儲值並對其進行操作。 將變量c更改為字符數組,並在循環內使用它來獲取值。
char c[10];
int i=0;
while(i!=10)
{
c[i]=fgetc(fp);
i++;
}
另一種方法是使用指針並動態分配內存並分配值。
C\/C++ 方便的數據類型交換函數。 在這個 repo 中有所有 c++ 數據類型的便利函數,我把它們都寫在 python 中。
使用這個回購:
https:\/\/github.com\/azizovrafael\/Simple-CPlusPlus<\/a>
例子:
...
int main(){
int n = INT(INPUT("Write Some Text For Console Ex. (Enter: )"));
string str = STR(n);
return 0;
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.