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;i C标准中难道没有字符串类型吗。它是您定义的类型吗?如果是这种情况,请共享字符串类型定义传统:变量的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;
}