언어/C++

no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')

겜도리도리 2022. 11. 5. 22:44
반응형

개요

string 할당하다가 생긴 오류

no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')

"char"에서 "std::basic_string<char, std::char_traits<char>, std::allocator<char>>"(으)로 변환하기 위한 적절한 생성자가 없습니다.

 

설명

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    string s = "Hello, World";
 
    string myStr = s[0];
 
    return 0;
}
cs

 

mystr에 H가 들어가야 할 거 같지만
string 클래스에 myStr = s[0]과 같은 생성자가 없기에

위와 같은 에러가 발생한다.

따라서 다음과 같이 생성자를 사용하거나 (basic_string(size_type n, charT c, const Allocator& a = Allocator()); 생성자가 있다.)

string mystr(1, s[0]);

std::string에 basic_string& operator=(charT c);와 같은 할당자가 있기 때문에

선언을 먼저 한 뒤, 할당하는 방식으로 사용해야 한다.

string myStr = "";
myStr = s[0];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    string s = "Hello, World";
 
    string mystr(1, s[0]);
    string mystr2 = "";
    mystr2 = s[0];
 
    cout << mystr << ' ' << mystr2;
    return 0;
}
cs

잘 출력이 되는 모습

반응형