#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *func(char *str);
char *lastWord(char *str);
int main(void)
{
char inputText[] = "my apple my orange my."; // Добавлена точка в конце строки
char *lastW = lastWord(inputText), *slovo = strtok(inputText, " ");
while (slovo != NULL)
{
// Удаляем точку из последнего слова, если она есть
if (strchr(slovo, '.') != NULL) {
*strchr(slovo, '.') = '\0';
}
if (strcmp(slovo, lastW) != 0)
puts(func(slovo));
slovo = strtok(NULL, " ");
}
return 0;
}
char *lastWord(char *str)
{
int i = strlen(str) - 1;
// Пропускаем точку в конце строки
if (str[i] == '.') {
i--;
}
while (str[i] == ' ')
i--;
int end = i;
while (i >= 0 && str[i] != ' ')
i--;
// Выделяем память для копии последнего слова и копируем его
char* lastWordCopy = (char*)malloc((end - i) + 1);
if (lastWordCopy == NULL) {
fprintf(stderr, "Memory allocation failed\n");
exit(1);
}
strncpy(lastWordCopy, str + i + 1, end - i);
lastWordCopy[end - i] = '\0';
return lastWordCopy;
}
char *func(char *str)
{
int len = strlen(str);
if (len == 0)
return str;
char lastChar = str[len - 1];
char *result = (char*)malloc(len + 1);
if (result == NULL) {
fprintf(stderr, "Memory allocation failed\n");
exit(1);
}
int j = 0;
for (int i = 0; i < len; i++)
{
if (str[i] != lastChar || i == len - 1)
{
result[j++] = str[i];
}
else
{
// Проверяем, есть ли ещё вхождения последней буквы
int found = 0;
for (int k = i + 1; k < len; k++)
{
if (str[k] == lastChar)
{
found = 1;
break;
}
}
if (found || i == len - 1)
{
result[j++] = str[i];
}
}
}
result[j] = '\0';
return result;
}
#include <stdio.h>
#include <string.h>
char *func(char *str);
char *lastWord(char *str);
int main(void)
{
char inputText[] = "my apple my orange my";
char *lastW = lastWord(inputText), *slovo = strtok(inputText, " ");
while (slovo != NULL)
{
if (strcmp(slovo, lastW) != 0)
puts(func(slovo));
slovo = strtok(NULL, " ");
}
return 0;
}
char *lastWord(char *str)
{
int i = strlen(str)-1;
while (str[i] == ' ')
i--;
while (str[i] != ' ')
i--;
return str + i + 1;
}
char *func(char *str)
{
}