Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 14:20   #1
Bobina
Новичок
Джуниор
 
Регистрация: 29.10.2010
Сообщений: 2
Вопрос поиск символов в строке и вывод их номера на экран

задача: найти размер слов которые были в введенны с клавиатуры и записанны в string
Код:
include<stdio.h>
#include<math.h>
#include<iostream>
#include<string>

using namespace std;

void main(void)
{string str;
cout<<"vvedite ctroky"<<endl;;
getline(cin,str);
int c=str.length(),loka=0,i=0;
while(i<=c){
	loka=str.find(" ",i);
	cout<<loka<<endl;
	i++;}
cout<<str<<c;
}
протокол: lot pa kol
3
3
3
3
6
6
6
-1
-1
-1
-1
lot pa kol10


вот и незнаю что с этим сделать..

Последний раз редактировалось Stilet; 02.11.2010 в 14:48.
Bobina вне форума Ответить с цитированием
Старый 02.11.2010, 14:50   #2
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Примерно так получилось... По твоему алгоритму.
Хотя, как мне кажется, куда проще было бы пройти по обычному массиву чаров с обычным счетчиком. На пробеле или конце строки выводить счетчик и сбрасывать..

Код:
#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str;
	cout << "enter string" << endl;
	getline(cin, str);

	int lok = 0, lastlok = 0;

	while(lok != string::npos){
		lastlok = lok;
		lok = str.find(' ', lok);

		if(lok != string::npos){
			cout << lok - lastlok << ' ';
			lok++;
		}
	}

	cout << str.length() - lastlok << endl;

	cout << endl << "thats all" << endl;

	return 0;
}
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 02.11.2010, 14:51   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Разбиваешь предложения на слова в массив
Код:
string a[100];
int cnt=0;
for(int i=0;i<str.Length();i++){
 if(str[i]==' ') {cnt++;
 } else {
  a[cnt]=a[cnt]+str[i];
 }
}
А дальше по массиву чапаешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод на экран символов дельта и сигма (Delphi) Alfik Помощь студентам 12 19.10.2014 10:05
Просмотр и вывод на экран ASCII-символов. ASM-86 Dom!no Помощь студентам 0 01.11.2010 22:01
Вывод набора символов на экран циклом for (pascal) street_spirit Помощь студентам 2 15.09.2010 16:42
TASM.Поиск имен регистров в введенной строке и вывод их содержимого на экран. adgam Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.05.2010 23:46
Вывод символов в строке Karl_Karlovi4 БД в Delphi 12 03.06.2008 13:31