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

Обработка строк - C++

Восстановить пароль Регистрация
 
Sveta1992
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 10
23.03.2012, 22:18     Обработка строк #1
//разделила предложение на слова, т.е. теперь каждое слово будет с новой строкой.
//Как теперь начать обрабатывать каждое слово по отдельности?


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 "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void main()
{
setlocale(LC_ALL, "russian");
 
char a[80]; //хранит введенную строку
char *p;
 
cout << "Введите строку текста и нажмите Enter " << endl;   
cin.getline(a, sizeof(a));//сохраняет введенную строку
 
cout<<"\nЗаданная строка: "<<a<<endl;
 
p=strtok (a," ,.-");
while (p)
{
    cout<<p<<endl;
        p=strtok (NULL," ,.-");
        
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2012, 22:18     Обработка строк
Посмотрите здесь:

C++ Обработка строк
Обработка строк. C++
C++ обработка строк
Обработка строк C++
C++ Обработка строк
C++ обработка строк.
C++ Обработка строк
C++ Обработка строк
C++ обработка строк
C++ Обработка строк
Обработка строк C++
Обработка строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
23.03.2012, 22:23     Обработка строк #2
в цикле while и обрабатывайте
Sveta1992
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 10
23.03.2012, 23:16  [ТС]     Обработка строк #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
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void main()
{
setlocale(LC_ALL, "russian");
int strl;
int chislo=0;//счетчик
 
char a[80]; 
char *p;
 
cout << "Введите строку текста и нажмите Enter " << endl;   
cin.getline(a, sizeof(a));
 
cout<<"\nЗаданная строка: "<<a<<endl;
 
p=strtok (a," ,.-");
while (p)
{
    cout<<p<<endl;
    p=strtok (NULL," ,.-");
        
 
 switch()
        {  
    case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8 ':case'9': 
    chislo++;break;
    default:break;  
    }
}
 
system ("pause");
}
Добавлено через 36 минут
ну или хотя бы длину этих подстрок строк, чтобы потом посимвольно можно было просматривать.
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
23.03.2012, 23:47     Обработка строк #4
Цитата Сообщение от Sveta1992 Посмотреть сообщение
Например, нужно определить сколько будет цифр в каждой строке
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cctype>
 
int main()
{
        char str[256];
 
        std::cin.getline(str,256);
 
        int digits_count = 0;
 
        for(int i = 0; *(str + i) != '\0'; i++)
                if(isdigit(*(str+i)))
                        digits_count++;
 
        std::cout << digits_count << std::endl;
 
        return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
23.03.2012, 23:53     Обработка строк #5

Не по теме:

Который год уже на форуме, всё не пойму никак - с какой целью студентов учат быдлокодить на непонятной смеси из С и С++? Какой вообще профит с этого?


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define DELIM " \t\n"
 
size_t digits_count(const char * s) { return ( *s ) ? !!isdigit(*s) + digits_count(s+1) : 0; }
 
int main(void){
    char buf[BUFSIZ], * p;
    
    while ( printf("\nString: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        for ( p = strtok(buf, DELIM); p != NULL; p = strtok(NULL, DELIM) )
            printf("%-20s%d digits\n", p, digits_count(p));
    
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <functional>
#include <algorithm>
#include <cctype>
 
int main(){
    std::string str;
    
    while ( std::cout << "\nString: " && std::getline(std::cin, str) && ! str.empty() ){
        std::istringstream ist(str);
        while ( ist >> str )
            std::cout << std::setw(20) << std::left << str << std::count_if(str.begin(), str.end(), std::ptr_fun(isdigit)) << " digits" << std::endl;
    }
    
    return 0;
}
Yandex
Объявления
23.03.2012, 23:53     Обработка строк
Ответ Создать тему
Опции темы

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