Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 19:03   #1
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Дана строка. Удалить 2 слова, начиная со слова с указаным номером. Если слов в строке меньше чем указаный номер - удалить первых 2 слова.
Заранее спасибо!

Код:
include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
void main()
{
char n;
do
{
char in[80], out[80]="";
cout << "======================================================="<<endl;
cout <<"Enter a string, whitch starts swith integer value "<<endl;
gets(in);
int numberw=atoi(in), c=(-1);

char* ss=strtok(in, " ,\t_");

if (ss)
{
c++;
}

while ( ss = strtok( NULL, " ,\t_" ) )
{
countw++;
if (countw!=numberw)
{
//----------------------------------------------------------
}

}
cout <<endl<<" Resultat: ";
cout <<out;
cout <<endl<<"Would you like to continue (y/n)?"<<endl;
n=getch();
}
while (n!='n');
return;
}
У меня получилось, что программа удаляет только первое слово.

Последний раз редактировалось Stilet; 22.09.2009 в 09:04.
Sirega вне форума Ответить с цитированием
Старый 23.04.2009, 21:26   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот, что наваял:
Код:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

int main()
{
char in[80], out[80], words[30][80];
int k,count=0,i;
char *p;

gets(in);
p = strtok(in," ");
if(p) strcpy(words[count++],p);
while(p=strtok(NULL," "))
  strcpy(words[count++],p);

cout<<"Vsego slov: "<<count<<endl;
cout<<"Vvedite nomer slova: ";
cin>>k;
if(k>count-2) k=0;

strcpy(out,"");
for(i=0;i<k;i++)
 {
  strcat(out,words[i]);
  strcat(out," ");
 }
for(i=k+2;i<count;i++)
 {
  strcat(out,words[i]);
  strcat(out," ");
 }
puts(out);

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.04.2009, 22:59   #3
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Большое Вам спасибо))
Sirega вне форума Ответить с цитированием
Старый 21.09.2009, 21:57   #4
AxenicX
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 65
По умолчанию

Почему этот код выводит слова начиная со второго?
Цитата:
#include <iostream>

using namespace std;

int main(int nArg, char pszA[]){
char szCtroka[100];
char *p;
gets(szCtroka);

for(p = strtok(szCtroka," ");p=strtok(NULL," ")
cout << p <<"\n";

system("PAUSE");
}
П.С. Sazary спасибо, что открыл функцию gets() я вторую неделю парюсь не могу слова в массив разбить а теперь получилось
П.П.С. Это не смайлик там на самом деле
AxenicX вне форума Ответить с цитированием
Старый 21.09.2009, 22:44   #5
AxenicX
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 65
По умолчанию

Вопрос снят правильно надо
Цитата:
for(p = strtok(szCtroka," ");p;p=strtok(NULL," "))
AxenicX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
Строки (Си 11111 Помощь студентам 1 16.12.2008 19:21
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45