我正在從C函數獲取用戶的數字並將其轉換爲字符串,放在字符串的開頭 - +或無(如果爲0),而不是打印字符串的長度和字符串本身。所以可以說我輸入「123」,字符串將包含:'+','1','2','3','\ 0' ,它將打印:「數組長度爲4它包含+123" 有減,將打印只是同樣的事情 - 在開始(-123),並與0它不會打印任何東西(0)C閱讀字符串與fgets從1並保持0可用於閱讀
這就是我所做的代碼:
#define STRING_SIZE 100
int main()
{
int num;
char sNum[STRING_SIZE] = {'\0'}, string[STRING_SIZE] = {'\0'};
printf("%s", string);
scanf("%d", &num);
itoa(num, string, 10);
if (num < 0) {
sNum[0] = '-';
}
else if (num > 0) {
sNum[0] = '+';
}
strncpy (sNum, string, STRING_SIZE);
printf("\nThe string length is %d and contains the number: %s\n", strlen(sNum), sNum);
system ("PAUSE");
return 0;
}
這是我的輸出,當我進入123:
字符串長度是3,並且包含數:123
OP初始化'sNum'與'炭SNUM [STRING_SIZE] = { '\ 0'}',所以'SNUM [1] = 0全零;'線沒有必要。 – MC93
@ MC93 - 確實,剛剛改變了 - 謝謝。 –