Поиск ошибки - 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(), которая приостанавливает выполнение программы до нажатия клавиши.