我想用putchar()和getchar()從用戶中讀取一串字符,然後我的循環將打印每個字符三次,打印新行等等,直到變量「userInput」中的每個字符都已經打印完畢。當我嘗試編譯我的節目,我收到以下錯誤:使用putchar()和getchar()打印單個字符
warning: assignment makes pointer from integer without a cast [enabled by default]
userInput = getchar();
^
warning: comparison between pointer and integer [enabled by default]
while(counter < strlen(userInput))
^
error: array subscript is not an integer
putchar(userInput[counter]);
^
error: array subscript is not an integer
putchar(userInput[counter]);
^
error: array subscript is not an integer
putchar(userInput[counter]);
^
如何解決這些錯誤?我是C新手,無法弄清楚指針轉換錯誤的意義,以及爲什麼我的計數器變量不起作用。
我的代碼如下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
char *userInput;
int *counter = 0;
printf("Enter a string of characters: ");
userInput = getchar();
while(counter < strlen(userInput))
{
putchar(userInput[counter]);
putchar(userInput[counter]);
putchar(userInput[counter]);
printf("\n");
counter++;
}
}
'getchar'讀取*一個*字符,而不是一串字符。 – gurka