Siema:
Zadanie z Dante nosi taką treść:
"
Napisz program, który pyta użytkownika o jego imię, a następnie wyświetla tekst powitalny
Witaj (...)!
gdzie zamiast (...) program wyświetla pobrane imię. Załóż, że długość imienia nie przekroczy 30 znaków. "
Rozpisałem kod:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
char imie[30];
printf("Podaj imie:");
scanf("%s",imie);
printf("Witaj %s!",imie);
return 0;
}
I wysłałem do sprawdzenia na stronie Dante. Oto co się odwaliło:
"
Błąd: Wartość wyświetlona przez program jest błędna; powinno być Witaj NzTqXNGqVyxdyvqZrdJrIDUfjLTbMF!
Ostrzeżenie: Wykryto problemy podczas analizy statycznej programu
"
Widok konsoli programu -- przebieg interakcji z użytkownikiem:
Podaj imie:NzTqXNGqVyxdyvqZrdJrIDUfjLTbMFQcUCJYdUV⏎
Witaj NzTqXNGqVyxdyvqZrdJrIDUfjLTbMFQcUCJYdUV!
Program zakończony; kod błędu=0 (Ok)
Test został przerwany; Wartość wyświetlona przez program jest błędna; powinno być Witaj NzTqXNGqVyxdyvqZrdJrIDUfjLTbMF!
Czyli odczytało cały wyraz, i to pomimo przekroczenia możliej ilości elementów w tablicy... pytanie tylko co mogę zrobić z tym fantem. Jak to ograniczyć, żeby wypisywanie imienia w funkcji printf kończyło się na elemencie tablicy o indeksie 29?
Poradzicie? :/