【发布时间】:2022-06-15 23:34:48
【问题描述】:
我想知道将字符串的单个字符与另一个完整字符串进行比较并找到匹配字符的最佳方法。我的代码中可能最重要的 sn-ps 是用户输入请求:
string text = get_string("text: ");
和我预定义的“比较”-string=char lowerabc[] = "abcdefghijklmnopqrstuvwxyz";
现在,我想取文本的第 n 个值并在 lowerabc 中找到匹配的字符。
我的第一次尝试是使用 for 循环并将结束条件设置为它们的值匹配时,就像这样:for(int j=0;text[i] == lowerabc[j] ; j++){}
但正如我发现的那样,这比较了两者的地址,因此没有意义。因此,我偶然发现了 strcmp() 函数并编辑了代码以匹配零值作为结束标准:for(int j=0;strcmp(text[i], upperabc[j])==0 ; j++){} 但是一旦我编译它,它就会向我抛出错误:incompatible integer to pointer conversion passing 'char' to parameter of type 'const char *'; take the address with & [-Werror,-Wint-conversion] 对不起,但它真的看起来像我太固执了,无法区分这两个变量的性质,以至于它会对我说那样的话。因此,我想问一下进行此类比较的最有效方法是什么。非常感谢您的帮助
【问题讨论】:
-
text[i] == lowerabc[j] 不比较地址
-
提示:什么是 text[i]?什么是 lowerabc[j]?
标签: c string string-comparison