Poo*_*yaz -2 c++ pointers 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;
}
Run Code Online (Sandbox Code Playgroud)
*a是一个char在这里,所以你应该使用它将它与另一个char(而不是带有类型的字符串文字const char *)进行比较==.
你需要改变
if(*a==" ")
Run Code Online (Sandbox Code Playgroud)
至
if(*a==' ')
Run Code Online (Sandbox Code Playgroud)