не могу передать функции строку в СИ++
сделал все как в книге, но чет не хочет
#include <iostream>
#include <cstring>
using namespace std;
struct mystr {
void buildstr(char* s);
void printstr();
private:
char str[100];
};
void mystr::buildstr(char* s) {
if (!*s) *str = '\0';
else strcat(str, s);
}
void mystr::printstr(){
cout << str << endl;
}
int main() {
mystr s;
s.buildstr("sdfdf");
s.buildstr("fdsf");
s.printstr();
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Функция должна принимать указатель на константную строку — литерал менять нельзя...
void buildstr(const char* s);
Только это не всё — у вас str неинициализированный массив... Если компилятор позволяет, напишите
char str[100] = "";
вместо просто
char str[100];