Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C+中的函数计算字符串中出现的字符类型+;? 我的任务是编写一个C++程序,它包含两个变量,一个字符值和一个字符串值。然后,通过使用名为int CountCharacters()的用户定义函数,程序将计算用户输入的字符值在用户输入的字符串值中的次数 到目前为止,我已经能够把我认为至少是一个好的基础代码,但是当我运行它时,我得到一个疯狂的大数字,每次运行程序时也会发生变化。_C++_String_Function_Char - Fatal编程技术网

如何使用C+中的函数计算字符串中出现的字符类型+;? 我的任务是编写一个C++程序,它包含两个变量,一个字符值和一个字符串值。然后,通过使用名为int CountCharacters()的用户定义函数,程序将计算用户输入的字符值在用户输入的字符串值中的次数 到目前为止,我已经能够把我认为至少是一个好的基础代码,但是当我运行它时,我得到一个疯狂的大数字,每次运行程序时也会发生变化。

如何使用C+中的函数计算字符串中出现的字符类型+;? 我的任务是编写一个C++程序,它包含两个变量,一个字符值和一个字符串值。然后,通过使用名为int CountCharacters()的用户定义函数,程序将计算用户输入的字符值在用户输入的字符串值中的次数 到目前为止,我已经能够把我认为至少是一个好的基础代码,但是当我运行它时,我得到一个疯狂的大数字,每次运行程序时也会发生变化。,c++,string,function,char,C++,String,Function,Char,以下是我迄今为止编写的程序: 测试输入:n星期一 预期输出:1 #include <iostream> using namespace std; int CountCharacters(char userChar, string userString) { int casesFound = 0; int n = userString.length(); for (int i = 1; i < n; i++) { if (use

以下是我迄今为止编写的程序:

测试输入:n星期一

预期输出:1

#include <iostream>
using namespace std;

int CountCharacters(char userChar, string userString)  {
   
   int casesFound = 0;
   int n = userString.length();
   
   for (int i = 1; i < n; i++)  {
      if (userString[i] == userChar)  {
         casesFound = casesFound + 1;
      }
   }
   
   return casesFound;
}

int main() {
   
   char cVal;
   string sVal;
   int casesFound;
   
   cin >> cVal;
   getline(cin, sVal);
   
   CountCharacters(cVal, sVal);
   
   cout << casesFound << endl;

   return 0;
}
接收到的输出:22091

#include <iostream>
using namespace std;

int CountCharacters(char userChar, string userString)  {
   
   int casesFound = 0;
   int n = userString.length();
   
   for (int i = 1; i < n; i++)  {
      if (userString[i] == userChar)  {
         casesFound = casesFound + 1;
      }
   }
   
   return casesFound;
}

int main() {
   
   char cVal;
   string sVal;
   int casesFound;
   
   cin >> cVal;
   getline(cin, sVal);
   
   CountCharacters(cVal, sVal);
   
   cout << casesFound << endl;

   return 0;
}
#包括
使用名称空间std;
int CountCharacters(char userChar,string userString){
int casesFound=0;
int n=userString.length();
对于(int i=1;i>cVal;
getline(cin、sVal);
计数字符(cVal、sVal);

cout得到不同数字的原因是,您输出的
casesFound
没有给它赋值。读取未初始化的变量会使您的程序有-因此任何事情都可能发生。如果您的函数返回
1
,那就不重要了,因为您没有给
casesFound
赋值。您可以将返回到
cases的函数值按如下方式对齐:

casesFound = CountCharacters(cVal,sVal);
然后继续

cout<<casesFound;

“代码”> CuTI认为您的意思是“代码> CASSEDIFEST = CONTHARTER(CVAL,SVAL);<代码> <代码>主代码()/代码>。此外,字符串在索引0开始,但是您的循环开始在索引1上搜索。标准C++库有一个算法,您应该使用而不是滚动自己的手动函数:<代码> CASSIONS= STD:::计数(Sval.Node.),sVal.end(),cVal);
没有编译器警告?启动命令行标志!@Ted Lyngmo抱歉,我的错,我忘了关闭问题。我现在就做。