Хочу записать в переменную то, что получается в цикле.
char buff[50];
char str;
for (int i = 0; i < strlen(buff); i++){
if (buff[i] >= '0' && buff[i] <= '9')
strcat( str,buff[i]);
}
cout << str;
Выдает ошибку:"аргумент типа char
не совместим с параметром типа const char*
"
Так сойдет?
char buff[50];
// Надеюсь, код для заполнения buff у вас есть? :)
char str[50] = { 0 };
for (int i = 0, j = 0; i < strlen(buff); i++)
{
if (buff[i] >= '0' && buff[i] <= '9')
str[j++] = buff[i];
}
cout << str << endl;
Ваша ошибка в том, что вы в 1 (один) символ пытались воткнуть целую строку...
Раз у Вас метка c++, то и пишите на с++
char buff[50];
std::string sbuff(buff);
std::string str;
for (int i = 0; i < sbuff.length(); i++){
if (sbuff[i] >= '0' && sbuff[i] <= '9')
str += buff[i]
}
cout << str;
как по мне, код стал проще и читаемей.
Функция strcat() принимает два указателя на строки (см. strcat) - первый на изменяемую строку и второй на константную строку. Вы же при вызове функции в качестве первого и второго параметра передаете отдельные символы (char), которые, если будут интерпретированы программой как указатели на строки, непременно вызовут обращение по недопустимому адресу памяти 0x000000XX, где XX-код символа. Для того, чтобы заставить компилятор не ругаться, приведите первый и второй параметры к (char*) и (const char*) соответственно: strcat((char*)str,(const char*)buff[i]); Для того, чтобы исправить баг, который непременно после этого появится, передавайте указатели на корректные строки либо не используйте функцию strcat(), если Вы хотите оперировать отдельными символами.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Могу ли я хранить в games для каждой игры свои переменные со значениями id_game и href_game?