趣味のプログラムやってるんだが思う通りに動かないの
■ このスレッドは過去ログ倉庫に格納されています
半角文字があったら全角に変えるコードを書きたいけど
なんか上手くいかないんだ
助けて #include <iostream>
#include <vector>
#include <string>
#include <regex>
using std::string;
std::string halfWidthToFullWidth(const std::string& input) {
std::string result;
for (const auto& c : input) {
if (c >= 0x21 && c <= 0x7E) {
// 半角文字を全角文字に変換
result += static_cast<char>(c + 0xFEE0);
}
else {
// その他の文字はそのままコピー
result += c;
}
}
return result;
}
int main()
{
std::string line;
std::vector<std::string> v;
while (std::getline(std::cin, line))
{
if (line == "end") {
break;
}
v.push_back(line);
}
int size = v.size();
// 全角に変換
for (int i = 0; i < size;i++) {
std::regex hankaku(R"(^(?=.*[a-zA-Z0-9]).*$)");
if (std::regex_match(v[i],hankaku)) {
v[i] = halfWidthToFullWidth(v[i]);
}
}
int n = 0;
for (std::string& s : v) {
std::cout << n << ":" << s << std::endl;
n++;
}
return 0;
} 上のハーフなんたら関数はAI君に書いてもらったけど多分ここが不味い? ■ このスレッドは過去ログ倉庫に格納されています