Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++_C - Fatal编程技术网

C++ 传递字符串和整数的字符串函数

C++ 传递字符串和整数的字符串函数,c++,c,C++,C,我不知道为什么这不起作用。我试图创建一个传递整数和字符串并返回字符串的函数 string convertThousands(int val, string roman) { piece = (val / THOUSANDS); for (int i = 0; i < piece; i++) { roman += 'M'; } val %= THOUSANDS; retur

我不知道为什么这不起作用。我试图创建一个传递整数和字符串并返回字符串的函数

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

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

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

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

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

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

您没有以正确的方式调用
方法。你应该这样做

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

在您的方法中,我没有发现任何错误,因此它应该正常运行。

考虑到语法是正确的

您仍然没有将参数传递给函数。函数如何知道函数将操作的“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 */
}
#包括
#包括
#包括
typedef char*字符串;
#定义千1000
字符串(int*val,字符串罗马){
整块=(*val/千);
对于(int i=0;i

#包括
#包括
使用名称空间std;
常数int千=1000;
字符串转换(int&val,字符串罗马){
整件=瓦尔/千;
对于(int i=0;iC标准中难道没有字符串类型吗。它是您定义的类型吗?如果是这种情况,请共享字符串类型定义传统:变量的lopp head声明在纯C中有效吗?我的老师告诉我不是,但他不是那个裂纹,我不太确定。您对
convert数千()的调用不匹配它的原型。你是说它不编译吗?因为我不会。@ Zaibis在C99中被允许。它应该是“C”,不是C++。而且MyodoOPS里面还有其他错误,看起来我没有仔细阅读。嗯,没有投票。也许是“C”。标记不正确。您至少应该注意,这是纯C。谢谢这帮助我解决了我的问题
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 */
}
#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;
}