30/09/2018, 19:29

Khác nhau giua vector<string> và string?

Mình có chút khó khăn khi sử dụng 2 loại vector và string hoặc char *, mình chưa phân biệt được sự khác nhau của 3 loại. Ví dụ sau:

if(s.begin()!=s.end()){     //check string is not empty
    auto a= s.begin();
    *a = toupper(*a);
}
cout << s;```

Khi sử dụng vector<string> như sau:
```vector<string> s{"abc"};
    if(s.begin()!=s.end()){     //check string is not empty
        auto a= s.begin();
        *a = toupper(*a);
    }
    cout << s;```
Thì gặp lỗi error: no matching function for call to ‘toupper(std::__cxx11::basic_string<char>&)’
         *a = toupper(*a);
Ai giari thích giups mình với. Cảm ơn nhiều
viết 21:37 ngày 30/09/2018

vector<string> là mảng string, còn stringstring… Đừng coi vector là cái gì cao siêu, coi nó là mảng.

để kiểm tra chuỗi rỗng thì viết là

string s = ...;
if (!s.empty())
{
  //... 
} 
//s[0] có kiểu char

để kiểm tra mảng rỗng thì cũng viết tương tự

vector<string> p = ...;
if (!p.empty()) 
{ 
  //... 
}
//p[0] có kiểu string
//p[0] [0] có kiểu char
Bài liên quan
0