gpt4 book ai didi

c - 在 C 中,我如何将一个整数插入到一个字符串中?

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:18 25 4
gpt4 key购买 nike

我的代码得到一串字符。例如“aaabbdddd”函数将字母和它们出现的次数插入到新字符串中。所以这个特定字符串的输出应该是“a3b2d4”。我的问题是如何将数字插入字符串中?我尝试使用 itoa 并将整个字符串转换为一个数字。这是我的代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LONG 80
#define SHORT 20
void longtext(char longtxt[LONG], char shorttxt[SHORT])
{
int i, j=0, count=0, tmp;
char letter;
for (i = 0; i <= strlen(longtxt); ++i)
{
if (i == 0)
{
letter = longtxt[i];
++count;
}
else if (letter == longtxt[i])
++count;
else
{
shorttxt[j] = letter;
shorttxt[j + 1] = count;
j += 2;
count = 1;
letter = longtxt[i];
}
}
}
int main()
{
char longtxt[LONG] = "aaabbdddd",shorttxt[SHORT];
longtext(longtxt,shorttxt);
printf("%s", shorttxt);
}

我认为问题出在“shorttxt[j + 1] = count;”这一行因为那是我想将 int 放入字符串的地方。

最佳答案

你是对的,问题是线路:

shorttxt[j + 1] = count;

将其更改为:

shorttxt[j + 1] = count + '0';

你应该没问题。

原因是你想要的不是字符串中的数字本身,而是代表数字的字符。将字符 0 的 ascii 值与实际数字相加即可得到正确的结果。

关于c - 在 C 中,我如何将一个整数插入到一个字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060329/

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