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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 02:55   #1
Sien
Новичок
Джуниор
 
Регистрация: 09.01.2009
Сообщений: 1
Плохо Работа со строками в С++

Здраствуйте.

В-общем в С++ разбираюсь (имею ввиду уровень усваивания материала на парах), но тут вот застрял. Помогите пожалуйста! Нужно написать программу, которая определяет позиции первого символа заданного слова в исходной строке (в строке может быть несколько одинаковых слов). Вся проблемма собственно в том, что я не могу понять как ходить по строке! Как взять 1 элемент какойто строки? А потом второй? Небольшого обьяснения будет вполне достаточно. Заранее благодарю!
Sien вне форума Ответить с цитированием
Старый 09.01.2009, 08:19   #2
Doc
Пользователь
 
Аватар для Doc
 
Регистрация: 09.01.2009
Сообщений: 15
По умолчанию

В C++ строки объявляются как указатели на начало строки, например:
char* str; //указатель на char
str = (char*)malloc(255*sizeof(char));//выделим под строку буфер длиною 255 символов, нумерация с НУЛЯ
fgets(str,sizeof(str),stdin); //получим строку от юзера
str = "Hello world"; //или присвоим
//а теперь в цикле работаем с ней
for(int i=0;i<255;i++) {
str[i] = "a"; //каждый символ строки будет "а"
}
Doc вне форума Ответить с цитированием
Старый 09.01.2009, 13:57   #3
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Цитата:
str = "Hello world"
Плохой тон программирования...
Выделить под str память динамически, а потом присвоить ей строку статическую... Т.е. память утеряна (выделенная)
StarWorm вне форума Ответить с цитированием
Старый 09.01.2009, 20:02   #4
Andrew#90
Пользователь
 
Аватар для Andrew#90
 
Регистрация: 14.11.2008
Сообщений: 17
По умолчанию

Sien, я тебя обрадую. строки - массивы типа char, последний элемент массива - всегда "\0" - конец строки
Перебирать просто, например, ищем "W" в строке
#include <iostream>
#include <stdlib.h>
using namespace std;
void main()
{
char str[500];
int size;
int i;
cin >> str;
size=strlen(str);
for (i=0; i<size; i++)
{
if (str[i]=="W") {cout << "W is on the " << i << " position";}
}
// =========== end of the function
}

Вот как то так например
Усложнять - просто
Упрощать - сложно
// ==============
Andrew#90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками pant Помощь студентам 2 30.12.2008 17:12
Работа со строками . Cveto4eg Помощь студентам 11 26.05.2008 13:36
[С++]работа со строками Федор Помощь студентам 6 23.12.2007 12:35