Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Работа со строками

Автор: zloy_pes 5.10.2006 22:03

Помогите пожалуйста - в C полный ноль sad.gif Нужно написать такую программу:
Вводится строка, слова разделяются пробелами. Нужно сформировать массив указателей на слова в строке и заменить пробелы на 0 (конец строки).
И еще вопрос - char *M[] - указатель на массив или массив указателей?

Автор: volvo 5.10.2006 23:02

Цитата
Нужно сформировать массив указателей на слова в строке и заменить пробелы на 0 (конец строки).
То есть, ты хочешь таким образом получить массив слов из массива символов? Это именно так требуется по заданию, или тебе нужно просто парсить строку?

Если нужен именно парсинг - то в С есть очень интересная вещь: strtok называется...

Автор: zloy_pes 5.10.2006 23:27

Нет - так по заданию надо sad.gif

Автор: volvo 5.10.2006 23:55

Ну, попробуй так:

#include <stdio.h>

int main() {
char s[256], *p, *words[50];
int i, count = 0;
gets(s);

for(p = s; *p; ) {
words[count++] = p;
while(*p++ != (char)32 && (*p));

if(*p) *(p - 1) = '\0';
}

for(i = 0; i < count; ++i)
puts(words[i]);
return 0;

}

Автор: zloy_pes 6.10.2006 0:16

Да, оно. Спасибо, volvo.