Poniżej umieściłem kod programu w języku C:
#include <stdio.h>
int main()
{
char x[20], y[20], z[20];
do
{
printf(" x = ");
scanf("%s",&x);
printf(" x - %d\n",strlen(x));
printf(" x = %s\n",x);
}
while(strlen(x)>20);
// Gdyby została wprowadzona zbyt duża ilość znaków, podaj wartość zmiennej jeszcze raz
do
{
printf(" y = ");
scanf("%s",&y);
printf(" y - %d\n",strlen(y));
printf(" y = %s\n",y);
}
while(strlen(y)>20);
do
{
printf(" z = ");
scanf("%s",&z);
printf(" z - %d\n",strlen(z));
printf(" z = %s\n",z);
}
while(strlen(z)>20);
printf("%s %s %s\n",x,y,z);
printf(" x - %d, y - %d, z - %d",strlen(x),strlen(y),strlen(z));
getchar(); getchar();
}
Oraz przykładową odpowiedź programu:
W czerwonej ramce powinno być:
xxxxx yyyyyyy zzzzzzzzz
Pytanie brzmi: Co zrobiłem nie tak, że program zwraca mi złe ciągi znaków? Wystarczy wyjść z pętli do while i zmienne x, y od razu się psują. Dlaczego?