Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
shedex
0 / 0 / 0
Регистрация: 02.04.2012
Сообщений: 25
#1

Обработка массивов - C++

02.07.2012, 13:22. Просмотров 285. Ответов 3
Метки нет (Все метки)

помогите пожалуйста разобраться с кодом(прокомментировать), или помогите написать код ,но проще) сложно разобраться в некоментированной программе!!!

Обработка массивов
Задание:
Дана строка символов. Признак конца строки – символ ‘\n’ (перевод строки). Строка состоит из слов, разделенных пробелами. Вывести слова, заканчивающиеся слогом ‘qw’, и длину каждого из этих слов.
Исходный код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
#define DELIM " ,.!;\'\"?"
int main()
{
char str[] = ""; 
char end[] = "qw";
gets(str);
char* ptr = strtok(str, DELIM);
while(ptr != NULL)
{
if(strlen(ptr) >= strlen(end)) 
if(strcmp(ptr + strlen(ptr) - strlen(end), end) == 0)
printf("%s - %d\n", ptr, strlen(ptr));
ptr = strtok(NULL, DELIM);
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 13:22     Обработка массивов
Посмотрите здесь:

Обработка массивов - C++
Задание:Дана целая квадратная матрица. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех...

Обработка массивов - C++
#include &quot;stdafx.h&quot; #include &quot;C:/Users/andre/OneDrive/Документы/Visual Studio 2015/Projects/std_lib_facilities.h&quot; int main() ...

Обработка массивов - C++
:sorry:Дана целочисленная прямоугольная матрица. Определить: сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный...

Обработка массивов - C++
1)Дано одномерный массив размерностью N, найти на каком месте находится элемент который равняется 3. 2)Заполнить матрицу елементами...

Обработка массивов - C++
Требуется: 1) Массивы должны быть динамические – организовать вы-деление памяти; 2) значения элементов массива вводятся с клавиатуры; ...

Обработка массивов - C++
Дана вещественная квадратная матрица {aij} . Составить структурированную программу нахождения за один просмотр матрицы сумму элементов,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.07.2012, 15:28     Обработка массивов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <algorithm>
#include <sstream>
#include <string>
#include <iterator>
 
int main()
{
   std::string str = "abc dgf reqw er rtqw\n";
   std::stringstream s(str);
   std::string seq;
   std::getline(s, seq);
   s.clear();
   s.str(seq);
 
   std::istream_iterator<std::string> it(s), end;
   
   std::for_each(it, end, [](const std::string& v) {
         if(v.length() >= 2 && v.substr(v.length()-2, 2) == "qw")
            std::cout << "word: " << v << "; length: " << v.length() << std::endl; 
         }
      );
   
   return 0;
}
http://liveworkspace.org/code/39f86d...8b69e6f7e07eda
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
02.07.2012, 16:09     Обработка массивов #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <string.h>
 
int main()
{
    FILE* pf = fopen("in.txt", "r"); // строку берём из файла
    if(pf)
    {
        char buf[BUFSIZ];
        const char* pComb = "qw", *pDelims = " ";
        size_t pCombLen = strlen(pComb);
        fscanf(pf, "%[^\n]s", buf);
        char* pw = strtok(buf, pDelims);
        for(; pw; pw = strtok(NULL, pDelims))
        {
            size_t wLen = strlen(pw);
            if((wLen >= pCombLen) && !strcmp(pw + wLen - pCombLen, pComb))
            {
                printf("%s, %u\n", pw, wLen);
            }
        }
        fclose(pf);
    }
    else perror("fopen failed");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2012, 16:40     Обработка массивов
Еще ссылки по теме:

Обработка массивов - C++
Даны две вещественные квадратные матрицы N-го порядка. Вы- ведите на экран квадрат той из них, в которой наименьший след (сумма...

С. Обработка массивов - C++
Реализовать на языке С. Дана квадратная матрица порядка М. Найти суммы элементов ее диагоналей, параллельных побочной(начиная с...

Обработка массивов - C++
Ввести массивы А и В. В массив С скопировать те элементы, которые есть и в массиве А и в массиве В. Из массива В ...

Обработка массивов - C++
Не знаю как сделать, а нужно срочно 1. Каждый пятый элемент массива А заменить максимальным из четырех предыдущих. 2. Положительные...

обработка массивов - C++
используя технологию структурного программирования, разработать программу обработки одномерных и двумерных (матриц) массивов в соответствии...

Обработка массивов - C++
Задание: Дана матрица А(n,m). Сформировать массив В(m), каждый элемент которого есть сумма четных элементов соответствующего столбца...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
02.07.2012, 16:40     Обработка массивов #4
Можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
using namespace std; 
int main() 
{   
    setlocale(0, "rus");
    char str[] = "Real madrid qweqw ertyu asdfqw"; // исходная строка
    char* ptr; // указатель
 
    ptr = strtok(str, " "); 
 
    while(ptr!= NULL) // пока не закончатся символы
    { 
        int size = strlen(ptr); // длина слова
        if(ptr[size-1] == 'w' && ptr[size-2] == 'q') // если последний и предпоследний символы  
        {                                            // соответствуют условию
            cout << "Длина слова " << size <<  " "; // длина
            cout << ptr << endl;                    // слово
        }
        ptr = strtok(NULL, " "); 
    } 
}
Yandex
Объявления
02.07.2012, 16:40     Обработка массивов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru