Заменить первую букву у слов, следующих за словами die, der, das, на прописную - C (СИ)
Формулировка задачи:
В предложении, состоящем из слов, разделенных одним пробелом,
заменить первую букву у слов, следующих за словами die, der, das, на
прописную
Решение задачи: «Заменить первую букву у слов, следующих за словами die, der, das, на прописную»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 256
char * poisk(char *a, char * p)
{
char *c,*s,*z,*b;
b=(char*)malloc(sizeof(char)*strlen(p)+1);
strcpy(b,p);
for(c=strtok(b," ");c!=NULL;c=strtok(NULL," "))
{
s=a;
while((z=strstr(s,c))!=NULL)
{
s=z+strlen(c)+1;
*s=*s+32;
}
}
free(b);
return a;
}
int main(void)
{
char a[N]="Die Gfgdh Das Fhfhd Der Hfhfh";
printf( "%s\n",poisk(a,"Das Die Der"));
return (0);
}
Объяснение кода листинга программы
- Объединение строк с помощью функции strcpy.
- Разделение строки на слова с помощью функции strtok.
- Поиск каждого слова в строке с помощью цикла while и функции strstr.
- Замена первой буквы найденного слова на заглавную с помощью оператора инкремента s=s+32;.
- Возврат исходной строки в функцию main.
- Вывод результата на экран с помощью функции printf.