将字符串的char传递给C ++中的函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串的char传递给C ++中的函数?相关的知识,希望对你有一定的参考价值。

在我的程序中,我希望函数replacef(char m)将字母A / a替换为数字(初始化为char)。但是,当我在for循环中调用该函数并且如果我编写例如“Alabama”(没有“.mark”)时,程序将返回不变的字符串。如何传递角色以使此功能正常工作?

#include <iostream>
#include <string>
using namespace std;
string n;
void replacef(char m)
{
    switch (m)
    {
    case 'A':
    case 'a':
    m='1';
    }
}
int main()
{
    cin>>n;
    for(int i=0; i<n.length(); i++)
    {
        replacef(n[i]);//Replace the current char in the string
    }
    cout<<n<<endl;
}
答案

您需要通过引用传递参数。用void replacef(char m)替换void replacef(char& m)

另一答案

您的替换函数必须通过引用接收char。

void replacef( char& c){ ...

我想你也应该看看std :: replace函数,它可以满足您的需求。 http://en.cppreference.com/w/cpp/algorithm/replace

M2C

另一答案

您应该使用引用或指针来执行此操作。

以下是执行此操作的代码: -

#include <iostream>
#include <string>
using namespace std;
string n;
void replacef(char &m)
{
    switch (m)
    {
    case 'A':
    case 'a':
    m='n';//you can choose any character to replace in place of 'm'
    }
}
int main()
{
    cin>>n;
    for(int i=0; i<n.length(); i++)
    {
        replacef(n[i]);//Replace the current char in the string
    }
    cout<<n<<endl;
}

如果你还有任何疑问,那么评论

以上是关于将字符串的char传递给C ++中的函数?的主要内容,如果未能解决你的问题,请参考以下文章

将带有内部空字符的python2.7字符串传递给c ++

如何正确编组从Unity到C / C ++的字符串?

如何将字符串数组传递给C中的函数?

将字符串传递给 char 数组,然后在 C 中的位置 x 处修改 char 数组

有多少种方法可以将 char 数组传递给 C 中的函数?

如何将指针传递给字符串,指向子字符串的指针,并返回其他内容?