Проверить каждое слово строки на большее количество одинаковых букв - 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] записывается это слово. Если слово не содержит повторяющихся букв, то оно просто выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы