#include<iostream>
#include<string>
int main()
{
string a;
char b;
getline(cin,a);
endl;
cout<<"請輸入字母";
cin>>b;
int n,m=0;
for(int i=0;a[i]!='\0';i++){
m++;
if(a[i]==b){
n++;
}
}
cout<<n<<" "<<m<<endl;
return 0;
}
uj5u.com熱心網友回復:
n沒有初始化,int n=0,m=0;uj5u.com熱心網友回復:
#include<iostream>#include<string>
using namespace std;
int main()
{
string a;
char b;
cout<<"請輸入字串:"
getline(cin,a);
cout<<"請輸入字母:";
cin>>b;
int n=0, m=0;
for(int i=0; a[i]!='\0'; i++)
{
m++;
if(a[i]==b)
{
n++;
}
}
cout<<n<<" "<<m<<endl;
return 0;
}
以上,改好了,首先是沒有添加using namespace std;
然后是第八行直接endl,沒有cout(輸出),endl是換行的
還有樓上提到的沒有初始化
uj5u.com熱心網友回復:
我猜這段程式的功能是求輸入字串的長度,以及查找所輸入字母在字串中的位置。主要問題正如上面兩位答主所說:
1 using namespace std;
2 n要賦初值,這里根據需要,n=1
還有一點,要考慮例外輸入(輸入的字母不在字串中)
我在你代碼的基礎上做了修改,對照看一下,僅供參考。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a;
char b;
getline(cin, a);
cout << "請輸入字母";
cin >> b;
int n = 1, m = 0;
for (int i = 0; a[i] != '\0'; i++){
m++;
if (a[i] == b)
cout << n << " ";
else
n++;
}
if (n > m)
cout << "字母" << b << "不在字串a中" << endl;
else
cout << m << endl;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80202.html
標籤:新手樂園
上一篇:可以幫我看看代碼嘛?
下一篇:devc++除錯的問題
