Я пытаюсь, чтобы моя программа выводила слова, введенные в мою программу, на экран. Пока моя программа выводит случайные символы в зависимости от того, что я набираю. Например, если я вводю слово hey, он выводит на экран%. Как я могу исправить это, чтобы вывести слово hey на экране? Мой код ниже.Программирование на языке C, как выводить введенную строку на экран?
#include <stdio.h>
#include<conio.h>
int main(){
int word;
char cont;
for (;;){
int countword = 0;
int countpunct = 0;
printf("\nEnter the String: ");
while ((word = getchar()) != EOF && word != '\n'){
if (word == ' ' || word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
countword++;
}
if (word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
countpunct++;
}
}
printf("%c", word);
printf("\nThe number of words is %d.", countword);
printf("\nThe number of punctuation marks is %d.", countpunct);
printf("\nContinue? Y/N?");
scanf("%c", &cont);
if (cont != 'y' && cont != 'Y'){
return 0;
}
}
}
Вы не печатаете значение 'word'. Используйте 'printf ("% c ", word);'. Кроме того, нет необходимости делать свой тип «int». –
Если вы раньше не использовали отладчик, возможно, это время. Шаг через код, строчный за строкой, отслеживая все переменные и их изменения, и проблема, надеюсь, станет ясна. –
переместите 'printf' внутри цикла, если вы хотите напечатать каждый символ –