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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
#1

Строки - C++

24.02.2008, 14:16. Просмотров 1662. Ответов 11
Метки нет (Все метки)

Дан текст. Найти все слова, которые оканчиваются тем же символом, что и первое слово.
Что-то блин вообще как-то неправильно она работает((




#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
int main()
{int n;
char s[150],*str[100],*ch=" ";
do{
printf("\nVvedite stroky:\n");
gets(s);
str[0]=strtok(s,ch); /**/
for(int i=1;str[i]=strtok(NULL,ch);i++)
n=i;
for(int i=0;i<n;i++)
printf("%s",str[i]);
for(int i=0;i<n;i++)
if(strpbrk(strlwr(*str+i),strlwr(*str+n+1)))
{
for(int j=0;j<n;j++) str[j]=str[j+1];
n++;i++;
}
for(int i=0;i<n;i++)
printf(" %s ",*(str+i));

printf("\nPress esc 2 ex1t || press any key 2 continue!");
printf("\n\n***********************************************\n");
}
while(getche()!=27);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2008, 14:16     Строки
Посмотрите здесь:

Упорядочить строки массива в соответствии с ростом характеристики строки C++
От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки C++
C++ Рассортировать строки динамической матрицы по наибольшему элементу строки.
Разработка функции (размещение строки s1 в середине строки s2 длиной l) C++
C++ Структуры и строки (как поменять значение строки в структуре?)
Сформировать строку, считая числа начальной строки соответствующими ASCII-кодами символов результирующей строки C++
C++ Задана матрица С(5,5). Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
25.02.2008, 10:33     Строки #2
вроде работает, только надо еще защиту от дурака написать, потому что при пустой строке выпадает...
Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
int main()
{int n;
char s[150],*str[100],*ch=" ";
do{
printf("\nVvedite stroky:\n");
gets(s);
str[0]=strtok(s,ch);
n = 1;
for(int i=1;str[i]=strtok(NULL,ch);i++) n++;
printf("Get Mas:\n");
for(int i=0;i<n;i++)
  printf("%s\n",str[i]);
printf("\nSearch\n");
for(int i=1;i<n;i++)
  if(str[0][strlen(str[0]) - 1] == str[i][strlen(str[i]) - 1])
  printf("%s\n",str[i]);
printf("\nPress esc 2 ex1t || press any key 2 continue!");
printf("\n\n************************************** *********\n");
}
while(getche()!=27);
}
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
25.02.2008, 13:41  [ТС]     Строки #3
Спасибо
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
26.02.2008, 13:08  [ТС]     Строки #4
Из данного текста выбрать и распечатать только те символы, которые встречаются в тексте только один раз(в том порядке в котором они встречаются)
Незнаю, что в ифе надо написать(




#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
int main()
{int n;
char s[150],*str[100],*ch=" ";
do{do{
cout<<"\n Vvedite stroky: ";
gets(s);
}while(strlen(s)<=0);
str[0]=strtok(s,ch);
n=1;
for(int i=1;str[i]=strtok(NULL,ch);i++) n++;
cout<<"\n Vash text:\n";
for(int i=0;i<n;i++)
printf(" %s",*(str+i));
cout<<"\n Vivod simvolov kotorie vstre4aytc9 tol'ko 1 raz :\n";
for(int i=0;i<n;i++)



if()



printf(" %s",*(str+i));
cout<<"\n\n\n * * * * * * * * * * * * * * * * * * * * * * * *";
cout<<"\n *_____________________________________________*";
cout<<"\n *Press esc 2 ex1t || press any key 2 continue!*";
cout<<"\n *_____________________________________________*";
cout<<"\n * * * * * * * * * * * * * * * * * * * * * * * *";
}while(getche()!=27);
}
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
26.02.2008, 14:52     Строки #5
ну тебе надо посимвольно текст сканить по идее, и если он уже встречался, больше раза, то прерывать поиск... ну и по всему алфавиту шерстить...
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
26.02.2008, 16:34  [ТС]     Строки #6
И как это сделать, чтобы по символьно рассматривать текст?
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
26.02.2008, 16:37     Строки #7
ну как обычный массив
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
26.02.2008, 16:57  [ТС]     Строки #8
а как сделать, чтобы abc-рассматривались, как 3 символа, а не как одно целое?
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
26.02.2008, 17:01  [ТС]     Строки #9
Можно, что-нибудь в *ch добавить?
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
27.02.2008, 09:30     Строки #10
добавить можно, но нужно памяти прежде выделить... а обращение такого вида - ch[i]
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
11.03.2008, 17:13  [ТС]     Строки #11
Из данного текста выбрать и распечатать только те символы, которые встречаются в тексте только один раз(в том порядке в котором они встречаются)
По идее должна работать, но(((
Помогите, очень надо.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
int main()
{int n;
char s[150],s2[150],*str[100;
do{do{
cout<<"\n Vvedite stroky: ";
gets(s);
}while(strlen(s)<=0);
cout<<"\n Vash text:\n";
for(int i=0;i<n;i++)
printf(" %s",*(str+i));
cout<<"\n Vivod simvolov kotorie vstre4aytc9 tol'ko 1 raz :\n";



int i,b;
b=0;
for(i=0;i<n;i++)
b++;
s2[b]=*str+i;
cout<<s2[b];
for (i=0;i<strlen(s)+1;i++)
if (s[i]==s2[b])
{ z++; }
if (z==1)

{ cout << s2[b];}






cout<<"\n\n\n * * * * * * * * * * * * * * * * * * * * * * * *";
cout<<"\n *_____________________________________________*";
cout<<"\n *Press esc 2 ex1t || press any key 2 continue!*";
cout<<"\n *_____________________________________________*";
cout<<"\n * * * * * * * * * * * * * * * * * * * * * * * *";
}while(getche()!=27);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2008, 10:01     Строки
Еще ссылки по теме:

C++ Вводятся 2 строки. Перевернуть обе строки, склеить и вывести
C++ Даны строки s, s0. Найти количество вхождений строки s0 в строку s
C++ Каждый элемент строки матрицы представить как приращение по отношению к минимальному элементу этой же строки
Заменить элемент строки, лежащий на главной диагонали, произведением чётных положительных чисел этой строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
srjk
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 24
13.03.2008, 10:01  [ТС]     Строки #12
Что нуэно в вайл записать, а то с стр не работает(


do{
str=strtok(NULL," ,.;:!?");
strcpy(word,str); f=1;
if (f) {
for (i=0;i<strlen(word);i++)
for (k=1;k<strlen(word)-i;k++)
if (word[i]==word[i+k]) f=0;
}
if (f) printf("%s ",word);
}while(str);
puts("\n\nPress any key");
Yandex
Объявления
13.03.2008, 10:01     Строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru