мне нужно написать функцию, которая будет принимать строку в качестве входов и выходов, как показано нижеКак добавить число в строку в конце в c-программе?
input : aaabbdd
output : a3b2d2
input : aaaaaaaaaaaaaaaabbccc
output : a16b2c3
основном я должен добавить счетчик для каждого символа. Я не должен использовать itoa() для преобразования int в строку
Я написал логику. Но мне удавалось добавить число в строку. Например, если count равен 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);
}
показать некоторый код, что вы получили, что не будет работать. – zubergu
Возможный дубликат [c string и int concatenation] (http://stackoverflow.com/questions/5172107/c-string-and-int-concatenation) – Cornstalks
, пожалуйста, напишите, что вы сделали до сих пор – ControlAltDel