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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 15:33   #1
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию Строки в С

Есть строка со словами, после каждого слова стоит запятая а в самом конце строки стоит точка.
Вопрос :Как выделить слово и занести его в другю строку для работы чисто с этим словом?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{char s[120],si[120];
int i,l;
printf("vv ctroku");
gets(s);i=0;   
while (s[i]!='.') {
if (s[i]==',') i++;
l=0;si='';
while (s[i]!=',')
{  si[l]=s[i];i++;l++;}    //тут работа со словом...
}}
Ошибки бъёт в
1)Si='';
2)while (s[i]!=','){ si[l]=s[i];i++;l++;} -зацикливание.
Помогите плиз исправить ошибку в коде)буду очень благодарен!)
Slame вне форума Ответить с цитированием
Старый 28.11.2010, 15:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
	char s[120],si[120]="";
int i,l;
printf("vv ctroku\n");
gets(s);i=0;   
while ((s[i]!='.')&&(i<strlen(s))) {
	if (s[i]==',') i++;
	l=0;
	while ((s[i]!=',')&&(i<strlen(s))){  si[l]=s[i];i++;l++;}    //тут работа со словом...
	si[l]=0;
	printf("%s\n",si);
}
getchar();
Смысл понятен? Ты забыл проверять на длину строки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.11.2010, 16:11   #3
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию

Спасибо большое!
Slame вне форума Ответить с цитированием
Старый 28.11.2010, 18:45   #4
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
Печаль

Блин думал если слово выделю дальше сам сделаю а не тут то было)
Задача состоит в том чтобы в строке которую я описал в 1 сообщении поменять в словах пары букв местами допустим "абвгд" в "багвд"
Вот мой код)Прошу если кому не сложно исправьте меня пжлста)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{char s[120],si[120]="",b,sa[120];
int i,l,n,j;
printf("vv ctroku\n");
gets(s);i=0;
while ((s[i]!='.')&&(i<strlen(s))) {
	if (s[i]==',') i++;
	l=0;
	while ((s[i]!=',')&&(i<strlen(s))){  si[l]=s[i];i++;l++;}
n=0;
while(n<strlen(si)-1);
{b=si[n];
si[n]=si[n+1];
si[n+1]=b;
n=n+2;}
strcpy(sa,si);
	si[l]=0;

}     puts(sa);
getchar();  }
И ещё...Вот допустим есть у меня строка, а к ней я просто хочу добавить запятую в Паскале это выглядит так s=s+',';
А как в С?Заранее благодарен)
Slame вне форума Ответить с цитированием
Старый 28.11.2010, 19:12   #5
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

strcat(s,","); - добавление запятой, вообще что угодно можно приплюсовать )
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 29.11.2010, 22:53   #6
Slame
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 45
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{char s[120],si[120]="",b,sa[120]="";
int i,l,n,j,k;
printf("vv ctroku\n");
gets(s);i=0;
while ((s[i]!='.')&&(i<strlen(s))) {
	if (s[i]==',') i++;
	l=0;
	while ((s[i]!=',')&&(i<strlen(s))&&(s[i]!='.'))
	{  si[l]=s[i];i++;l++;}
n=0;
while(n<strlen(si)-1)
{b=si[n];
si[n]=si[n+1];
si[n+1]=b;
n=n+2;}
strcat(sa,si);if (s[i]=='.'){ strcat(sa,".");} else {  strcat(sa,",");}

for (k=0;k<strlen(si),k++) {si[k]=0;}
}     puts(sa);
getchar();  }
Люди в строке должно менять парные буквы местами допустим "абвгдб,ежзиклм" должно быть "багвбд,жеизлкм" но почему когда ввожу следующее слово длиной больше предыдущего то оно в строку где выделяеться слово(а точнее si) вносит ещё окончание более длинного слова которое уже было)Можете подсказать где ошибка?
Slame вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Дбавление новой строки, после строки с подходящими параметрами RailOS Microsoft Office Excel 5 18.08.2010 10:12
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27