【发布时间】:2021-10-17 10:18:23
【问题描述】:
请帮助理解我的简单 C++ 代码有什么问题
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
string s = "qwertyuiopasdfghjklzxcvbnm";
string match = "w";
int n = s.length();
char char_array[n + 1];
strcpy(char_array, s.c_str());
for (int i = 0; i < n; i++)
if (match.compare(char_array[i]) == 0) {
cout << char_array[i];
}
return 0;
}
我收到一个错误:
错误:从‘char’到‘const char*’的无效转换[-fpermissive]
请帮忙把这个 char 转换成 *char 并正确比较它们
【问题讨论】:
-
您正在将字符串(匹配)与字符进行比较。这是不支持的。请与
w[0]进行比较。但我也很困惑,为什么你要把字符串复制到一个 char 数组开始。for (auto c : s)可以很好地循环字符(更不用说这看起来像find函数可能更合适的东西)。
标签: c++