gpt4 book ai didi

c++ - 如何添加一个多位数的 int 和一个 char,输出将是 int + char

转载 作者:行者123 更新时间:2023-11-30 04:05:21 25 4
gpt4 key购买 nike

这是我目前所拥有的

头文件内容如下:

    string MyAdd(int A, char B)
{
char C[10];
itoa(A,C,10);
C[1] = '+';
C[2] = B;
C[3] = '\0';

return C;
}

调用程序:

cout << "\n\t\tThe sum of 1 and X is = " << MeLoad.MyAdd(1   ,'X'   );

输出在哪里:

The sum of 1 and X is = 1 + X 

但它只适用于个位数的整数

所以如果我尝试添加 1000 + X,它仍然会返回 1 + X,我不知道为什么。

有人能指出我正确的方向吗?任何帮助表示赞赏,谢谢。

使用 VS 2010

最佳答案

首先,让我们修复您现有的代码:

您的代码假定 itoa 的输出以字符 1 结束。使用strlen找到实际的结束位置,然后在那个位置写入,像这样:

itoa(A,C,10);
int p = strlen(C);
C[p++] = '+';
C[p++] = B;
C[p] = '\0';

接下来,让我们考虑一个替代方案:您可以使用 sprintf 将您的代码放在一行中,如下所示:

sprintf(C, "%d+%c", A, B);

最后,让我们将您的代码编写为 C++:

您上面的代码也可能是用 C 语言编写的,因为它没有利用 C++ 功能。上述两种方法都有局限性,因为您必须预先分配某个最大容量的缓冲区 C。 C++ 提供了一个 stringstream 类,让您不用担心预分配:

string MyAdd(int A, char B) {
stringstream ss;
ss << A << "+" << B;
return ss.str();
}

关于c++ - 如何添加一个多位数的 int 和一个 char,输出将是 int + char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23321811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com