字符串函数传递在字符串和整数中

string function that passes in a string and integer

本文关键字:字符串 整数 函数      更新时间:2023-10-16

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

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; 
#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, %sn", 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;
}

首先,您必须以适当的方式调用功能:

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

您的主要功能应该看起来像:

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

请注意,应将100替换为要传递给此功能的任何值。

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

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

在您的方法中,我看不到任何错误,所以应该正确运行。

考虑句法语法是正确的。

您仍然不会将争论传递给功能。该函数将如何知道该函数将在上操作的" val"answers"字符串"是什么。

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 */
}