Stack Overflow на русском Asked by dadyaSasha on November 27, 2021
Перебираю строку и хочу текущий символ склеить с другой строкой, но показывает предупреждение
"const char *" отличается по уровням косвенного обращения от "char"
а при компиляции ошибку в strcat
Вызвано исключение по адресу 0x7889C573 (ucrtbased.dll) в Project1.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000030.
массив сс заполненн данными из файла.
char cc[368];
char number[5] = "0";
for (int i = 0; i < 368; i++) {
if (cc[i] == ';'){
continue;
}
else {
strcat(number, cc[i]);
if (cc[i+1] == ';') {
}
}
}
Всем спасибо. Как и сказал @dIm0n. strcat не работает с одним символом. В итоге преобразовал символ в строку и склеил 2 строки. Получилось:
for (int i = 0; i < 368; i++) {
if (cc[i] == ';'){
memset(number, 0, 5);
continue;
}
else {
char cToStr[2];
cToStr[1] = '';
char currentChar = cc[i];
cToStr[0] = currentChar;
strcat(number, cToStr);
if (cc[i+1] == ';') {
}
}
}
Ну, вообще-то, тогда уж
strncat(number, &cc[i],1);
только вот не вижу я, чтоб в cc
хранилось что-то не мусорное (вы же ее не инициализируете?), а в number
хватало места (сейчас вы можете добавить в нее не более 3 символов).
Answered by Harry on November 27, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP