Znaki zapytania zamiast znaków w wyniku programu

0

Witam, mam taki program zamieniajacy małe litery na duże, ale jak wpiszę cokolwiek, wychodzą w znaki zapytania. Czemu?

#include <stdio.h>
#include <ctype.h>
int main()
{

printf("Podaj: ");
char wyraz;
scanf("%c",&wyraz);
while(wyraz=getchar()!='\n')
{
	if(islower(wyraz))
	{
		wyraz=toupper(wyraz);
	}
	else
	putchar(wyraz);
}
putchar(wyraz);
return 0;
}
2

Jak Chcesz zamienić cały wyraz (czyli string), a na to mi wygląda, to Musisz operować na tablicy znaków:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){

	printf("Podaj: ");
	char  wyraz [40];
	scanf("%s", wyraz); //qwerty
	char c;
	for (int i = 0; i < strlen(wyraz)  ; i++){
		if (islower(wyraz[i]))
			wyraz[i] = toupper( wyraz[i]);
	}
	printf("%s\n", wyraz); //QWERTY
	return 0;
}
0
    char c;
    
    printf("Podaj: ");

    while((c = getchar()) != '\n' && c != EOF)
    {
        putchar(toupper(c));
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1