Форум программистов, компьютерный форум, киберфорум
Наши страницы

Отредактировать текст так, чтобы между словами был ровно один пробел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ СЛАУ методом Гаусса (ведущий элемент отыскивается среди строк и столбцов) http://www.cyberforum.ru/cpp-beginners/thread119232.html
Привет, всем! Помогите пожалуйста. Вот собственно, задача: Разрабоать программу для численного решения СЛАУ методом Гаусса, где ведущий элемент отыскивается СРЕДИ (в теме опечатка) строк и...
C++ Вычисление функции Задача1.Линейные вычислительные процессы. Задание. Разработать алгоритм и составить по нему программу для вычисления значений функции z = f(x,y). Область определения функции не учитывать.(рис 1) ... http://www.cyberforum.ru/cpp-beginners/thread119230.html
C++ ошибка
Вот программа::: #include <iostream> using namespace std; void check() { int kol_vo_per; cout << "Enter Kolvo chisel v posl " << endl; cin >> kol_vo_per; int...
C++ создать файл
Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа Вывести на печать информацию о самом дешевом издании....
C++ Строка - количество слов с определенной буквой http://www.cyberforum.ru/cpp-beginners/thread119159.html
Всем привет! Имеется такая задачка: Дана строка, состоящая из 8 слов, разделенных 1 пробелом. Определить кол-во слов, в которых буква "а" встречается 3 раза. Я так понимаю, что нужно считать 1...
C++ Функция и реверс строки 1. Составить программу, которая реверсирует каждое слово строки str. 2. Написать и протестировать функцию STRP(str1, str2), которая возвращает указатель на последнее вхождение символа из строки str2... подробнее

Показать сообщение отдельно
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
21.04.2010, 20:02  [ТС]
Народ, плз помогите
Для задачи №2: Вот короче программка, которая удаляет из строки все пробелы
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
#include <stdio.h>
void compress(char *str)
{
    int i=0,j=0,k=0,l=0;
    while(str[i]==' ')
        i++;
    while(1)
    {
        while(str[j]!=' ' && str[j]!='\0')
            j++;
        if(str[j]=='\0') break;
            k=j;
        while(str[k]==' ') k++;
            l=j;
        do
        {
            str[l]=str[k];
            l++;k++;
        }while(str[k-1]!='\0');
    }
}
int main()
{
    char str[100];
    printf("Enter string:\n");
    gets(str);
    compress(str);
    printf("After compressing:\n");
    puts(str);
    return 0 ;
}
Я не знаю как ее переделать, чтобы 1)между словами был только 1 пробел;2)2 пробела.
Кто может - хелп плз

Добавлено через 11 минут
Плз хел еще с этим
Для задачи №1:
Вот что я нешел, мне надо это как-то сложить все в кучу и чтобы получилась норм код, но я не знаю как сделать.
Это вроде на С++, а как на С переделать (тут исп. atoi, lnum
тут типо используем длинную арифметику( http://e-maxx.ru/algo/big_integer )

C
1
2
const int base = 1000*1000*1000*1000; // 12 цифр
typedef vector<int> lnum;
Чтение( используем массив char'ов:
C
1
2
3
4
for (int i=(int)strlen(s); i>0; i-=9) {
    s[i] = 0;
    a.push_back (atoi (i>=9 ? s+i-9 : s));
}
Сложение:
C
1
2
3
4
5
6
7
8
int carry = 0;
for (size_t i=0; i<max(a.size(),b.size()) || carry; ++i) {
    if (i == a.size())
        a.push_back (0);
    a[i] += carry + (i < b.size() ? b[i] : 0);
    carry = a[i] >= base;
    if (carry)  a[i] -= base;
}
Вывод :
C
1
2
3
printf ("%d", a.empty() ? 0 : a.back());
for (int i=(int)a.size()-2; i>=0; --i)
    printf ("%09d", a[i]);
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.