Skocz do zawartości

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

xJanekx

Problem w języku c

Rekomendowane odpowiedzi

Witam, jestem początkujący w programowaniu i mam nastepujący problem, chcę aby program po wpisaniu jakiegoś wyrazu pokazywał napis "działa". Działa mi dla pojedynczego znaku ale nie dla całych słów. Co mam zmienić w kodzie żeby działało?

{
char p;
scanf("%s", &p);
if ( p == 'a' ) //
{
	printf("działa ");
}
return 0;
}

Z góry dzięki za pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Deklarujesz zmienna p jako pojedynczy znak, a próbujesz wpisać do niej cały napis. To trochę tak jakbyś do pudełka na bombkę chciał włożyć całą choinkę ;)

Na początek proponuję zadeklarować zmienną jako tablicę znaków. Pamiętaj, że odwołanie do zmiennej tablicowej bez [ ], to tak na prawdę odwołanie do wskaźnika i np. będzie trzeba zmienić odwołanie się do niej we wczytaniu napisu.

 

Odnośnie tytułu tematu, to if nie jest pętlą, a instrukcją warunkową. Pętle to for, while, do while.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Do tego co napisał Bono dodam, że w C do porównania napisów używa się funkcji strcmp i strncmp, oraz zwrócić warto uwagę, że scanfem inaczej się troszkę pobiera takie ciągi, niż to się niektórym wydaje

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...