Мне нужно сравнить первую и последнюю букву одним словом; если эти буквы одинаковы, мне нужно вывести это слово в файл. Но я беру слова из другого файла. Моя проблема в том, что я не могу догадаться, как я должен выводить все слова, потому что в моем коде он выводит только первое слово. Поэтому я понимаю, что у меня нет перехода к другим.string.h выходные слова C
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include<malloc.h>
#include <string.h>
int main()
{
char my_string[256];
char* ptr;
FILE *f;
if ((f = fopen("test.txt", "r"))==NULL) {
printf("Cannot open test file.\n");
exit(1);
}
FILE *out;
if((out=fopen("result.txt","w"))==NULL){
printf("ERROR\n");
exit(1);
}
fgets (my_string,256,f);
int i;
int count = 1;
printf("My string is %d symbols\n", strlen(my_string));
for (ptr = strtok(my_string," "); ptr != NULL; ptr= strtok(NULL," "))
{
int last = strlen(ptr) - 1;
if ((last != -1) && (ptr[0] == ptr[last]))
{
printf("%s\n",ptr);
}
}
printf("\n%s\n",my_string);
fprintf(out,"%s\n",my_string);
system("pause");
fclose(f);
fclose(out);
return 0;
}
В моем первом файле есть слова:
high day aya aya eye that
Из моих слов из первого файла, он выводит только первое слово
high
ко второму файлу. Я ожидаю, что следующее:
high aya aya eye
Что значит «это только первое слово»? Для указанного ввода, каков фактический и ожидаемый результат? И вы пробовали переходить через код по строкам в отладчике? Функции 'my_strlen' и' mystrtok' работают так, как должны? * Почему у вас есть свои собственные строковые функции вместо стандартных функций? –
Что с помощью 'my_strlen' и' mystrtok'? В какой библиотеке вы используете? –
Это означает, что он выводит первое слово (с тем же самым fisrt и той же последней буквой), что мне нужно, но их более одного. мои функции работа. Для проверки я могу использовать библиотеку Я использую свои собственные функции, потому что это особое условие для этой программы. –