作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写一个函数,该函数将字符串作为输入和输出,如下所示
input : aaabbdd
output : a3b2d2
input : aaaaaaaaaaaaaaaabbccc
output : a16b2c3
基本上我必须将计数附加到每个字符。我不应该使用 itoa() 将 int 转换为 string
我写了逻辑。但我对将数字附加到字符串感到惊讶。例如,如果计数为 16,如何将数字 16 添加到字符串末尾?
我的逻辑如下。
#include <stdio.h>
void str1(char *str)
{
int i, j, cnt;
int len = strlen(str);
char *nstr = (char *) malloc(len * sizeof(char));
int k = 0;
cnt = 1;
for(i = 0, j = 1; i < len - 1;)
{
if(str[i] == str[j])
{
j++;
cnt++;
continue;
}
else
{
if(cnt == 1)
{
nstr[k++] = str[i];
}
else
{
nstr[k++] = str[i];
nstr[k++] = cnt; // GOT STUCK HERE
}
i = j;
j = i + 1;
cnt = 1;
}
}
printf("\n%s\n", nstr);
}
main()
{
char str[] = "aaaaaaaaaaaaaaaabbcdd";
str1(str);
}
最佳答案
您可以自己实现itoa
。逻辑如下:
n % 10
存储最后一位数字这只是实现逻辑的一种方式。其他方法也是可能的 - 例如,您可以构建一个 10 次幂的查找表,并使用整数除法和取余数的组合来计算每个数字。
关于c - 如何在c程序中将数字添加到字符串末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730659/
我是一名优秀的程序员,十分优秀!