c++ isalpha
#include<iostream>#include<vector>#include<string>usingnamespacestd;intmain(){intcoun...
#include<iostream>
#include<vector>
#include <string>
using namespace std;
int main()
{
int count=0;
string str;
vector<string> ivec;
while(cin>>str)
ivec.push_back(str);
vector<string>::iterator iter=ivec.begin();
while(iter!=ivec.end()&&count!=1)
{if(isalpha(*iter))
{*iter=toupper(*iter);++iter;}
else {++iter;++count;};
};
return 0;
}
error C2664: “isalpha”: 不能将参数 1 从“std::basic_string<_Elem,_Traits,_Ax>”转换为“int”
error C2664: “toupper”: 不能将参数 1 从“std::basic_string<_Elem,_Traits,_Ax>”转换为“int” 展开
#include<vector>
#include <string>
using namespace std;
int main()
{
int count=0;
string str;
vector<string> ivec;
while(cin>>str)
ivec.push_back(str);
vector<string>::iterator iter=ivec.begin();
while(iter!=ivec.end()&&count!=1)
{if(isalpha(*iter))
{*iter=toupper(*iter);++iter;}
else {++iter;++count;};
};
return 0;
}
error C2664: “isalpha”: 不能将参数 1 从“std::basic_string<_Elem,_Traits,_Ax>”转换为“int”
error C2664: “toupper”: 不能将参数 1 从“std::basic_string<_Elem,_Traits,_Ax>”转换为“int” 展开
3个回答
展开全部
/*函数isalpha()和toupper()的参数都要求是int类型的, 而你传的确是string类型的, 所以无法编译通过, 可以将string类型转成int类型, 使用
atoi(string.c_str())这种方法, 可以看下下面的改动, 编译通过了...*/
#include<iostream>
#include<vector>
#include <string>
using namespace std;
int main()
{
int count=0;
string str;
vector<string> ivec;
while(cin>>str)
ivec.push_back(str);
vector<string>::iterator iter=ivec.begin();
while(iter!=ivec.end()&&count!=1)
{if(isalpha(atoi((*iter).c_str()))) //这里改动
{*iter=toupper(atoi((*iter).c_str()));++iter;} //这里改动
else {++iter;++count;};
};
return 0;
}
atoi(string.c_str())这种方法, 可以看下下面的改动, 编译通过了...*/
#include<iostream>
#include<vector>
#include <string>
using namespace std;
int main()
{
int count=0;
string str;
vector<string> ivec;
while(cin>>str)
ivec.push_back(str);
vector<string>::iterator iter=ivec.begin();
while(iter!=ivec.end()&&count!=1)
{if(isalpha(atoi((*iter).c_str()))) //这里改动
{*iter=toupper(atoi((*iter).c_str()));++iter;} //这里改动
else {++iter;++count;};
};
return 0;
}
展开全部
//因为汉字的后半部分可能不小于0同时还可能满足if(isalpha( p[i])),就会混乱
把循环改成这样,numcha也不用float了
while(p[i]!='\0')
{
if(p[i]<0)
{ numcha++;i+=2;continue;}
if(isalpha( p[i]))
numlet+=1;
i++;
}
把循环改成这样,numcha也不用float了
while(p[i]!='\0')
{
if(p[i]<0)
{ numcha++;i+=2;continue;}
if(isalpha( p[i]))
numlet+=1;
i++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*iter是String类型,不是整数类型。。
isalpha()与toupper()要求的参数均为int型。
isalpha()与toupper()要求的参数均为int型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询