Другие языки программирования и технологии
Нужно на с++ написать программу по заданию:даны две строки, содержащие не более 100 символов. Строки состоят из слов, р
Строки состоят из слов, разделенных пробелами. Распечатать каждую строку, заменив каждое слово, начинающееся с заданной буквы на заданное слово.
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
int main()
{
int j,k,b;
string s,t,r;
char c;
cout << "Введите 1-ю строку: "; getline(cin,s);
cout << "Введите 2-ю строку: "; getline(cin,t);
cout << "Введите букву: "; c=getch(); cout << c << endl;
cout << "Введите слово: "; getline(cin,r);
if(s[k=0]==c) k=1,b=0;
for(j=1;j-s.length();j++)
{
if(s[j]==' '&&k) s.replace(b,j-b,r),k=0,j+=r.length()-j+b;
if(s[j]==c&&s[j-1]==' ') k=1,b=j;
}
if(k) s.replace(b,j-b,r);
if(t[k=0]==c) k=1,b=0;
for(j=1;j-t.length();j++)
{
if(t[j]==' '&&k) t.replace(b,j-b,r),k=0,j+=r.length()-j+b;
if(t[j]==c&&t[j-1]==' ') k=1,b=j;
}
if(k) t.replace(b,j-b,r);
cout << s << endl << t << endl;
return 0;
}
#include<conio.h>
#include<string>
using namespace std;
int main()
{
int j,k,b;
string s,t,r;
char c;
cout << "Введите 1-ю строку: "; getline(cin,s);
cout << "Введите 2-ю строку: "; getline(cin,t);
cout << "Введите букву: "; c=getch(); cout << c << endl;
cout << "Введите слово: "; getline(cin,r);
if(s[k=0]==c) k=1,b=0;
for(j=1;j-s.length();j++)
{
if(s[j]==' '&&k) s.replace(b,j-b,r),k=0,j+=r.length()-j+b;
if(s[j]==c&&s[j-1]==' ') k=1,b=j;
}
if(k) s.replace(b,j-b,r);
if(t[k=0]==c) k=1,b=0;
for(j=1;j-t.length();j++)
{
if(t[j]==' '&&k) t.replace(b,j-b,r),k=0,j+=r.length()-j+b;
if(t[j]==c&&t[j-1]==' ') k=1,b=j;
}
if(k) t.replace(b,j-b,r);
cout << s << endl << t << endl;
return 0;
}
Ну если только за деньги.
А в чем собственно проблема?
Заводим массив указателей на символы (в данном случае из двух элементов) . Туда заносим слова.
Выводим слова на печать по следующему алгоритму (по сути у нас есть переменная счетчик, последовательно перебирающая элементы массива) :
0) Для первой строки:
1) пропускаем пробелы (просто увеличиваем переменную счетчик, ничего больше не делая) . Если видим НУЛЬ-символ - переходим к 4 шагу.
2) как дошли до первого символа не-пробела проверяем, явл. ли этот символ заданой буквой.
Если нет
2.1)выводим на печать символы пока не встретим пробел (или НУЛЬ-символ) ;
Если да
2.2)печатаем слово-замену, пропускаем все символы пока не встретим пробел (или НУЛЬ-символ) ;
3) Повторяем шаги 1-2
4) Повторяем шаги 1-3 для второй строки. Если видим НУЛЬ-символ - завершаем алгоритм
Все делается через вложенный цикл, внутри циклов проверяете условия.
Заводим массив указателей на символы (в данном случае из двух элементов) . Туда заносим слова.
Выводим слова на печать по следующему алгоритму (по сути у нас есть переменная счетчик, последовательно перебирающая элементы массива) :
0) Для первой строки:
1) пропускаем пробелы (просто увеличиваем переменную счетчик, ничего больше не делая) . Если видим НУЛЬ-символ - переходим к 4 шагу.
2) как дошли до первого символа не-пробела проверяем, явл. ли этот символ заданой буквой.
Если нет
2.1)выводим на печать символы пока не встретим пробел (или НУЛЬ-символ) ;
Если да
2.2)печатаем слово-замену, пропускаем все символы пока не встретим пробел (или НУЛЬ-символ) ;
3) Повторяем шаги 1-2
4) Повторяем шаги 1-3 для второй строки. Если видим НУЛЬ-символ - завершаем алгоритм
Все делается через вложенный цикл, внутри циклов проверяете условия.
Похожие вопросы
- Дана строка, состоящая из слов, разделенных символами, которые перечислены во второй строке. Показать все слова На С++
- Дана строка символов. Признак конца строки "\n" (перевод строки). Строка состоит из слов, разделенных пробелами. Вывести
- написать программу на ассемблере: найти (в строке) и вывести слово, у которого код первого символа наибольший
- Помогите решить задание по информатике. Нужно написать программу по заданию (см. внутри)
- Интересно,если написать программу перебора паролей из двух символов(на клаве их 100),сколько времени займет перебор?
- Как правильно написать программу по заданию?
- Помогите с информатикой!!! Кто понимает? Нужно преобразовать массив. (написать программу на паскале).
- Напишите пожалуйста программу в паскале. Дана строка символов,определить количество слов,начинающихся с заданного символа
- Чтобы написать программу нужно минимум 1000 строк?
- Напишите программу для С++, которая заменяет в символьной строке все буквы a на буквы b, буквы A на буквы B ...