getline使用错误
使用方法网上给你找的
还有你直接用一行字符串和单个字符比较得不出正确结果的 用下标[]从里面将字符一个个取出进行判断
cin.getline() // 接受一个字符串,可以接收空格并输出
#include
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<
输入:jkljkljkl
输出:jklj
接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
//延伸:
//cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)
//当第三个参数省略时,系统默认为'\0'
//如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
错的太离谱了,无法改,重写一段吧(略去头文件定义):
int find(char s[], char a) {
int n,m;
for(n=0,m=0;n
}
void main() {
char str[100],a;
scanf("%s %c",str,&a);
printf("字符串%s中字符%c出现%d次\n",str,a,find(str,a));
}
你能加多少分啊??
/* 这是用你的用string的做法
* 需要把int find(int string1,char a,int n);
* 改为int find(string string1,char a,int n);
* 因为他接受字符串,不是一个int,string1应该是string类型
*/
#include
#include
using namespace std;
int find(string string1,char a,int n);
int main(){
char a;
cin>>a;
string string1;
getline(cin, string1, '\n');
int x,n;
n=string1.size();
x=find(string1,a,n);
cout<return 0;
}
int find(string string1,char a,int n){
int i=0,b=0;
while (iif(string1[i]==a){
b++;
}
i++;
}
return b;
}
/*************************************************
* 问题:关于int find(char s[],char a);
* 但是我不知道这个char s[],char a到底有什么用?
* 回答:不推荐这样,不推荐这样
* 这是典型的C语法
* (虽然C语法传递的是指针减少了拷贝字符串的消耗,C++可以用引用来解决)
* C没有string类型,字符串只好用字符数组char s[]表示,字符'\0'代表结束
* 这里的char s[],char a分别和你写的string string1,char a是一个意思啊
* 只是没有传递长度而已,不传递长度也行啊,看最后的版本
**************************************************
* 问题:在定义find 函数时
* 能否将参数直接定义成find(char s[], char a)
* 这里的s[]没有具体的长度,会不会错,为什么?
* 回答:能,在这里数组名字会退化成指针
* 使用char s[]和char *s是一样的
**************************************************/
#include
#include
using namespace std;
int find(const string &string1,char a);
int main(){
char a;
cin>>a;
string string1;
getline(cin, string1, '\n');
int x;
x=find(string1,a);
cout<return 0;
}
int find(const string &string1,char a){
int i=0,b=0;
while (iif(string1[i]==a){
b++;
}
i++;
}
return b;
}
int find(int string1,char a,int n);这个声明应该放在main函数的外面。你 改一下试试,不行,再把错误贴出来
函数原形别自己乱声明,要按题目要求声明!