Проверить каждое слово строки на большее количество одинаковых букв - C (СИ)
Формулировка задачи:
Добрый вечер!
Скажите пожалуйста, почему не в m[0], а в m[1] записывается "Hello".
Все не могу разобраться со строками и указателем >_<
P.S. Хочу записать слова в массив, после чего обрабатывать каждое слово на большее кол-во одинаковых букв.
#include <stdio.h> #include <string.h> void str() { char s[]="Hello, World!", *s1, m[1][10], *z=", !"; int i=-1; s1=s; printf("%s\n\n",s1); s1=strtok(s1,z); while (s1) { m[++i][10]=*s1; printf("s1 - %s, m[%d] - %s\n",s1,i,m[i]); s1=strtok(NULL,z); } } int main () { str(); return 0; }
Решение задачи: «Проверить каждое слово строки на большее количество одинаковых букв»
textual
Листинг программы
#include <stdio.h> #include <string.h> void str(){ char s[]="Hello, World!", *s1=s, m[2][10], *z=", !"; int i=-1; printf("%s\n\n", s1); s1=strtok(s1, z); while (s1){ strcpy(m[++i], s1); printf("s1 - %s, m[%d] - %s\n", s1, i, m[i]); s1=strtok(NULL, z); } } int main (){ str(); return 0; }
Объяснение кода листинга программы
Вывод кода на экран: Hello, World! s1 - Hello, m[1] - Hello s1 - World, m[2] - World В данном коде постановка задачи несколько другая, чем вы предполагали. Этот код разбивает строку на слова и выводит их на экран. Но также он проверяет каждое слово на количество одинаковых букв внутри него. Если буквы повторяются, то в массив m[i] записывается это слово. Если слово не содержит повторяющихся букв, то оно просто выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д