错误:不能将指针与整数进行比较
Error: cannot compare a pointer to integer?
这是一个查找字符串中最长单词的程序,但是我有一个问题。编译器说,我不能比较一个指针到整数!但是我比较了char指针和
行的char指针#include <string.h>
#include <string>
#include <iostream>
using namespace std;
string longest(char * a)
{
int count=0;
int finalcount=0;
string longs="";
string longest;
int lena=strlen(a);
for(int i=0;i<lena;i++)
{
if(*a==" ")
{
if(count>=finalcount)
{
finalcount=count;
longest=longs;
}
count=0;
longs="";
}
else{*a++;count++;longs+=*a;}
}
return longest;
}
int main()
{
char a[]="which is the longest";
cout<<longest(a);
return 0;
}
*a
在这里是一个char
,所以您应该使用==
将其与另一个char
(而不是类型为const char *
的字符串文字)进行比较。
你需要修改
if(*a==" ")
if(*a==' ')
我同意herohuyongao的回答。但我认为这只是对你错误的最小修正。这段代码仍然是"C风格"。在c++中,你应该选择std::string
而不是char *
#include <string>
#include <iostream>
using namespace std;
string longest(string a) {
int count = 0;
int finalcount = 0;
string longs = "";
string longest;
int lena = a.length();
for (int i = 0; i < lena; i++) {
char c = a[i];
if (c == ' ') {
if (count >= finalcount) {
finalcount = count;
longest = longs;
}
count = 0;
longs = "";
} else {
count++;
longs += c;
}
}
if (count >= finalcount) {
finalcount = count;
longest = longs;
}
return longest;
}
int main() {
string a = "which is the longest";
cout << longest(a);
return 0;
}
相关文章:
- C++模板函数,用于比较任何无符号整数和有符号整数
- 正在LLVM中检测整数比较条件
- 为什么:不同符号的整数比较只是偶尔发生?
- C++ 如何比较n个排序的整数向量以找到互元素?
- 比较C++中两个整数的最有效和最干净的方法是什么?
- 禁止指针和整数之间的比较C++
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- Qsort() 比较结构体整数的总和
- 比较两个整数在C++中与未知 int 类型的相等性
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- 比较整数提升后的结果
- 对压缩整数进行加法、减法和比较
- 如何正确比较整数和浮点值
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- C++ 将二进制字符串转换为整数或比较 2 个字符串以查找差异数
- "正确"无符号整数比较
- C++,指向整数比较错误的指针
- C++指针与整数比较编译错误
- 为什么此指针/整数比较会生成分段错误
- 这是不可避免的有符号和无符号整数比较吗?