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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 19:55   #1
i-cpp
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 33
По умолчанию не могу подружиться с strcat()

Есть две строки первая char x[512], вторая char y[9];
строка (x) - заполнена некими символами, char (y) - пуста.
Если, перебирая (x), попадается '%', все символы после него записать в (y) (известно что их количество <= 8+'/0'). А (y) присвоить элементу массива типа string - z[?]=string(y); после повторить поиск %.
Во общем на примере:
char x[512] = {'а','а','%','b','b','%','c','c','% ',..};
char y[9];
string z[];
z в итоге должен быть = {"aa","bb","cc","...};

вот как я делал, но у меня ошибка в функции strcat(), возможно и не только:
Код:
int inc= 0;
for (unsigned int i = 0; i < strlen(x); i++) {
			if (x[i] == '%') {			
				char y[9];
				for (int j = i; x[j] != '%'; ++j)
					strcat(&(y[0]), &(x[j]));
				z[inc]= String(y);
				inc++;
			}
}
Дело в том, что, наверн, я думал что к ( y ) функция strcat будет прибовлять по символу x[j], но так не выходит. Я что-то запарился, помогите, может на свежую голову быстрей увидите в чем проблема.
i-cpp вне форума Ответить с цитированием
Старый 17.02.2010, 20:13   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

strcat конкатенирует две строки.
то есть
Код:
char str1[100] = "Hello ";
char* str2  = "World!";
strcat(str1, str2); // str1 == "Hello World!"
Словом, strcat тут использовать не получится
Код:
if (x[i] == '%') {			
	char y[9];
	int k = 0;
	for (int j = i; x[j] != '%'; ++j)
		y[k++] = x[j];
	y[k] = '\0'
	z[inc]= String(y);
	inc++;
}

Последний раз редактировалось netrino; 17.02.2010 в 21:37.
netrino вне форума Ответить с цитированием
Старый 17.02.2010, 20:14   #3
i-cpp
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 33
По умолчанию

вроде функция strncat(&(y[0]), &(x[j]),1); пришла на помощь

netrino, тоже вариант
i-cpp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моя strcat Valter Общие вопросы C/C++ 5 12.02.2010 00:30
Не могу понять Superlotles Помощь студентам 8 31.08.2009 20:39
strcat larry Win Api 3 20.07.2009 12:44
Не могу всё никак не могу эту лабораторку сдать помогите плиз Dimon.ru Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2009 20:53
не работает strcat(),strcpy() MeGaTpoH Общие вопросы C/C++ 5 25.01.2009 17:31