Помогите С Измерением Длинны Слов.

Тема в разделе "C/C++/C#", создана пользователем Screamer, 19 фев 2013.

  1. Screamer

    Screamer New Member

    Регистрация:
    19 дек 2012
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте, есть программа которая работает не совсем правильно. Задача в том что бы в двух данных предложениях измерить длину одинаковых слов если такие имеются. Проблема в том что если пишу оба предложения одинаковые считает всё как надо а если изменить порядок слов то не считает. Заранее спасибо.

    Вот код:
    Код (Text):
    #include <iostream>
    #include <cstring>
    int main() {
    char str1[100], str2[100];
    std::cout << "Vvedite pervoe predlojenie " << std::endl;
    std::cin.getline(str1, 100);
    std::cout << "Vvedite vtoroe predlojenie " << std::endl;
    std::cin.getline(str2, 100);

    int i, j;
    std::cout << "1-> " << str1 << std::endl
    << "2-> " << str2 << std::endl;
    i = j = 0;
    while (true) {
    int t = strstr(&str1[i], " ") - &str1[i];
    if (t <= 0) break;
    str1[t + i] = '\0';
    j = strstr(str2, &str1[i]) - str2;
    if (j >= 0)
    std::cout << "\n" << &str1[i] << " ( " << strlen(&str1[i]) << " ) ";
    i = t + 1;
    }

    std::cin.get(), std::cin.get();
    return 0;
    }
     
  2. interacia

    interacia New Member

    Регистрация:
    24 янв 2013
    Сообщения:
    2
    Симпатии:
    0
    Код (C++):
    #include <iostream>
    #include <cstring>
    int main() {
    char str1[100], str2[100];
    char slovo1[100], slovo2[100];
    std::cout << "Vvedite pervoe predlojenie " << std::endl;
    std::cin.getline(str1, 100,'\n');
    std::cout << "Vvedite vtoroe predlojenie " << std::endl;
    std::cin.getline(str2, 100,'\n');
    int Dlina;
    int n,m;
    n=0; m=0;
    int i=0;
    int j=0;
    Dlina=0;
    if ((str1[i]!=' ')&&(str1[i]!='\0'))
    {slovo1[n]=str1[i]; n++;}
    while (str1[i]!='\0')
    { i++;
    if ((str1[i]!=' ')&&(str1[i]!='\0'))
    {slovo1[n]=str1[i]; n++;}
    if (((str1[i]==' ')||(str1[i]=='\0'))&&(str1[i-1]!=' '))
    { slovo1[n]='\0';
    n=0;
    j=0;
    m=0;
    if ((str2[j]!=' ')&&(str2[j]!='\0'))
    {slovo2[m]=str2[j]; m++;}
    while (str2[j]!='\0')
    {j++;
    if ((str2[j]!=' ')&&(str2[j]!='\0'))
    {slovo2[m]=str2[j]; m++;}
    if (((str2[j]==' ')||(str2[j]=='\0'))&&(str2[j-1]!=' '))
    { slovo2[m]='\0';
    bool ravno;
    ravno=true;
    int n1=0;
    int m1=0;
    while((slovo1[n1]!='\0')&&(slovo2[m1]!='\0'))
    { if (slovo1[n1]!=slovo2[m1])ravno=false;
    n1++; m1++;
    }
    if (ravno){
    Dlina+=m;
    std::cout << slovo1 << '\n';
    }
    m=0;
    }
    }
    }
    }
    std::cout << "Otvet " << Dlina;
    getchar();
    return 0;
    }
    Исходный код с комментарием
     
Загрузка...
Похожие Темы - Помогите Измерением Длинны
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    99
  3. Ruska132
    Ответов:
    34
    Просмотров:
    269
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    147
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    62

Поделиться этой страницей