Задать вопрос
paulenot
@paulenot
IT Issue

Как в C++ передать функции("строку")?

Пытаюсь передать функции "строковый массив", но он выводит ошибку вместе с правильным выводом.

C++:
#include <iostream>
#include <cstring>
using namespace std;

void echo(char* string){
	cout << string << endl;
}

int main(){
	echo("abc");
	return 0;
}


Терминал:
linux>~>cpp> ./build.sh 
main.cpp: In function ‘int main()’:
main.cpp:10:7: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
   10 |  echo("abc");
      |       ^~~~~
abc
  • Вопрос задан
  • 1849 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@User700
Нужно const char*
А так да, имя совпало со стандартным классом -- нехорошо
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vanyamba-electronics
string - это название класса STL.
void echo(char* str){
  cout << str << endl;
}
Ответ написан
Morpheus_God
@Morpheus_God
Можно через указатель
void printer(char *str)
{
    cout << str << endl;
  
}


Можно через массив char
void printer(char str[])
{
    cout << str << endl;
  
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы