传入字符串和整数的字符串函数

时间:2014-01-24 08:39:41

标签: c++ c

我不确定为什么这不起作用。我正在尝试创建一个传入整数和字符串并返回一个字符串的函数。

string convertThousands(int val, string roman)
{
        piece = (val / THOUSANDS);
        for (int i = 0; i < piece; i++)
        {
            roman += 'M';
        }
        val %= THOUSANDS;
        return roman;
}

在我的主要功能中我会像下面这样称呼它:

string roman;
roman = convertThousands; 

5 个答案:

答案 0 :(得分:0)

首先,您必须以适当的方式调用函数:

string roman;
int val = 2014;
roman = convertThousands(val, roman); 

答案 1 :(得分:0)

您的主要功能应如下所示:

string roman;
roman = convertThousands(100, roman); 

请注意,100应该替换为您要传递给此函数的任何值。

答案 2 :(得分:0)

您没有以适当的方式调用convertThousands方法。你应该这样做

int value = 2015;
std::string roman;
roman = convertThousands(value, roman);

在你的方法中,我没有看到任何错误,所以它应该正常运行。

答案 3 :(得分:0)

考虑到语法语法是正确的。

你仍然没有将争论传递给该函数。该函数将如何知道该函数将在哪个“val”和“string”上运行。

main()
{
//caller function
int val = 2000;
string resultstr;
resultstr = convertthousands(val, roman)
}

string convertthousands(int val, string roman)
{
/* called function performs operation on val and roman and can return string after required operation */
}

答案 4 :(得分:0)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char* string;

#define THOUSANDS 1000

string convertThousands(int *val, string roman){
    int piece = (*val / THOUSANDS);
    for (int i = 0; i < piece; i++){
        strcat(roman , "M");
    }
    *val %= THOUSANDS;
    return roman;
}

int main(){
    string roman = malloc(1024);
    strcpy(roman, "");
    int year = 2014;
    roman = convertThousands(&year, roman);
    printf("%d, %s\n", year, roman);
    free(roman);

    return 0;
}

#include <iostream>
#include <string>

using namespace std;

const int THOUSANDS = 1000;

string convertThousands(int &val, string roman){
    int piece = val / THOUSANDS;
    for (int i = 0; i < piece; i++){
        roman += 'M';
    }
    val %= THOUSANDS;
    return roman;
}

int main(){
    string roman("");
    int val = 2014;
    roman = convertThousands(val, roman);
    cout << val << ',' << roman << endl;

    return 0;
}