Tôi cần chuyển đổi một chuỗi trong C++ thành chữ hoa toàn bộ. Tôi đã tìm kiếm một lúc và thấy một cách để làm điều đó:Làm thế nào để chuyển đổi chuỗi C++ thành chữ hoa
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string input;
cin >> input;
transform(input.begin(), input.end(), input.begin(), toupper);
cout << input;
return 0;
}
Thật không may điều này không làm việc và tôi đã nhận được thông báo lỗi này:
không có chức năng phù hợp cho cuộc gọi đến 'transform (std: :. basic_string :: iterator, std :: basic_string :: iterator, std :: basic_string :: iterator,
tôi đã thử phương pháp khác cũng đã không làm việc này là gần gũi nhất với làm việc
Vì vậy. những gì tôi đang hỏi là những gì tôi đang làm sai. Có thể cú pháp của tôi là xấu hoặc tôi cần phải bao gồm một cái gì đó. Tôi không chắc.
tôi có hầu hết các thông tin của tôi ở đây: http://www.cplusplus.com/forum/beginner/75634/ (hai bài gần đây)
Hoặc thoát khỏi 'cái using namespace std; '... –
Tôi đoán rằng sẽ làm việc quá. BTW cảm ơn các bạn đã giúp tôi giải quyết vấn đề khó chịu này mà tôi đã cố gắng sửa chữa trong một thời gian. –
@LokiAstari: Vấn đề là bạn muốn 'toupper' toàn cầu, không phải' std :: 'một, làm nổi bật vấn đề với' không gian tên sử dụng std' - nó gây ô nhiễm không gian tên mặc định với nhiều ký hiệu bạn không muốn chỉ để có được một hoặc hai.Nếu bạn chỉ muốn nhập một vài ký hiệu, bạn chỉ nên nhập các ký hiệu đó chứ không phải toàn bộ không gian tên 'std'. –