Поиск ошибки - C (СИ)
Формулировка задачи:
Здравствуйте, могли бы мне помочь найти что не так с этим кодом, не компилируется?
#include <stdio.h> #include <conio.h> void PrintName(string name); int main(void) { string s; scanf ("%s", &s); PrintName(s); getch (); } void PrintName(string name) { printf("Привет %s", name); }
Странно, я нашёл в чём причина: программа dev-c++ не принимает значение string, поэтому заменил на char. Кто-нибудь может объяснить в чём дело?
Решение задачи: «Поиск ошибки»
textual
Листинг программы
#include <stdio.h> #include <string.h> char* GetString(); void PrintName(char* name); int main(void) { char s[100]; strcpy(s,GetString()); PrintName(s); getch(); } char* GetString() { char x[100]; scanf("%100s", &x); return x; } void PrintName(char* name) { printf("Hello, %s", name); }
Объяснение кода листинга программы
- Объявлены две функции:
GetString()
иPrintName(char* name)
. - В функции
main(void)
объявлена переменнаяs
типаchar
с длиной в 100 символов. - В функции
main(void)
вызывается функцияGetString()
, и результат копируется в переменнуюs
с помощью функцииstrcpy()
. - В функции
main(void)
вызывается функцияPrintName(char* name)
, передавая в нее переменнуюs
в качестве аргумента. - В функции
GetString()
объявлена переменнаяx
типаchar
с длиной в 100 символов. - В функции
GetString()
вызывается функцияscanf()
, которая считывает строку символов в переменнуюx
. - В функции
GetString()
возвращается значение переменнойx
. - В функции
PrintName(char* name)
выводится приветствиеHello,
и передаваемое имя. - В конце программы вызывается функция
getch()
, которая приостанавливает выполнение программы до нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д