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

Работа со строками. Смена слов с строке. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка, дружественный функции http://www.cyberforum.ru/cpp-beginners/thread445646.html
Всем привет сразу к делу. Вроде бы всё просто , перегрузка ... Просче показать чем объяснить. Ниже не замысловатый код, перегружены арефметические операции. И почему-то не работает ситуация когда я объект класса пытаюсь разделить на вещественное число. Ошибка во время компиляции Ошибка 1 error C2666: operator /: для 2 перегрузок есть подобные преобразования d:\project_vs 2010\c++\leassons on...
C++ Переписать с PHP на Cи помогите переписать с php на C++ class RC4 { var $s = array(); var $x; var $y; function key( $key ) { http://www.cyberforum.ru/cpp-beginners/thread445643.html
C++ матрица и количество точек
помогите пожалуйста решить 2 задачи: 1) дана матрица размером m*n. найти строку в которой элементы чередуются знаками. 2) Вычислить k - количество точек с целочисленными координатами, попадающих в круг с радиусом r (r>0) с центром в начале координат.
C++ ассоциативный массив
мне нужно написать прграмму с динамическими шаблонными структурами, а именно с ассоциативным массивом, но что он из себя представляет, я что-то не совсем понимаю, я прочитала про него, вроде хранится пара, элемент и ключ, но чем ключ отличается от порядкового номера и какого типа должен он быть, не совсем, понятно. Не могли бы вы написать малюсенью программу на аасоциативный массив,, чтоб я...
C++ [C++] Запросить у пользователя массив из 7 строк и вывести на экран те, в которых есть буква y http://www.cyberforum.ru/cpp-beginners/thread445622.html
Помогите пожалуйста Запросить у пользователя массив из 7 строк и вывести на экран те, в которых есть буква y нужно решение в Visual C++
C++ Не полностью работает прога #include <iostream> #include <conio.h> using namespace std; void main() { struct form { char lastname; подробнее

Показать сообщение отдельно
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
13.02.2012, 22:00     Работа со строками. Смена слов с строке.
Пожалуйста:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//~ Помогите написать функцию,
//~ которая будет менять местами первые два слова в каждой строке массива.
//~ Слова разделяются одним и более пробелами. 
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
#define MAX_WORD 256
 
int read_word(int , char [], char []);
int exchange_words(char []);
 
int main()
{
        // текстовый массив
    char text[]="first second   third\nfirst2  second2  third3\nfirst3   second3 third";
        // старое значение текстового массива
    printf("old text: \n%s", text);
        // наша крутейшая функция
    exchange_words(text);
        // новое значение текстового массива
    printf("\n\nnew text:\n%s", text);
    return 0;
}
 
//~ читаем слово
int read_word(int i, char text[], char return_word[]) {
 
    //~ объявляем счетчик для слова
    int i_word=0;
    
    while (text[i] != ' ' && text[i] != '\n') {
        return_word[i_word]=text[i];
        i++;
        i_word++; 
    }
    return_word[i_word]='\0';
    return i;
}
 
//~ меняем слова в текстовом массиве text
int exchange_words(char text[])
{
    int i=0; // счетчик текста text
    int j=0; // счетчик для записи новых слов в text
    int i_new_line=0; // счетчик новой строки
    int words_len=0;  // длина двух слов без пробелов
    int spaces=0;     // количество пробелов
 
    //~ сюда запишем слова
    char first[MAX_WORD];       // первое
    char second[MAX_WORD];      // второе
    char buffer[MAX_WORD];  // буфер
 
    while (i <= strlen(text)) {
        //~ если начало текста или новая строка
        if (i == 0 || text[i-1] == '\n') {
            i_new_line=i;
            //~ читаем первое слово
            i=read_word(i, text, first);
            while (text[i] == ' ') {
                i++;
            }
            //~ читаем второе слово
            i=read_word(i, text, second);
 
            words_len = strlen(first) + strlen(second);
            spaces = i - i_new_line - words_len;
 
            words_len += spaces;
 
            //~ записываем слова в буфер
            strcpy(buffer, second);
            for (j=0; j < spaces; j++)
                strcat(buffer, " ");
            strcat(buffer, first);
            
            //~ записываем из буфера в text
            for (j=i_new_line; j<words_len; j++) {
                text[j]=buffer[j];
            }
        }
        i++;
    }
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru