Итак, у меня есть код для сравнения строки из файла с пользовательским вводом, который был проверен ошибкой для удаления пробелов.Использование puts в файле
char text[100];
int c = 0;
int d = 0;
char string[100];
void space(void);
int main(/*int argc,char *argv[]*/)
{
int count = 1;
char wd[20], word[20];
FILE *fp;
fp = fopen("Student Usernames.txt", "r");
if (fp == NULL)
{
printf("given file doesn't exist");
getch();
} else
{
printf("Enter the word to search: ");
gets(text);
space();
fscanf(fp, "%s", wd);
while (!feof(fp))
{
if (strcmp(string, wd) == 0)
{
printf("%s found in the file. the given word is the %d word in the file",
word, count);
count = 0;
break;
} else
{
fscanf(fp, "%s", wd);
count++;
}
}
if (count != 0)
{
printf("given word is not found in the file");
}
getch();
}
}
void space(void) //Prototype stage, w/o semi colon
{
while (text[c] != '\0')
{
if (!(text[c] == ' ' && text[c] == ' '))
{
string[d] = text[c];
d++;
}
c++;
}
string[d] = '\0';
c = 0;
d = 0;
getch();
}
Существует небольшая проблема, однако, когда я иду вперед, чтобы показать код, это даст некоторый случайный мусор, как слово, которое находится в файле,
, например: Input: П р е л. Программа превращает A p p l e в Apple. Выход:%^& $ £ $%^&
Кто-нибудь знает, что случилось? Редактировать: текст добавлен.
Я не думаю, что этот код компилируется. Переменная «text» используется, но никогда не определяется. – Stuart
'void space (char *);' будет прототипом. 'void space (char * text) {' будет открытием функции. И в чем смысл 'text [c] == '' && text [c] == '''? –
'word [20]' никогда не получает значения, но все же печатается. – chux