In C, how do i insert an integer into a string?

后端 未结 2 1506
春和景丽
春和景丽 2021-01-26 09:44

My code gets a string of characters. For example \"aaabbffffdd\" A function inserts to a new string the letters and the amount of times they appear. So the output for this specifi

2条回答
  •  醉话见心
    2021-01-26 10:03

    Try this code, it uses snprintf to convert integer to string.

    NOTE: You may need to increase the size from 2, if count exceeds a character size.

    #include 
    #include 
    #include 
    #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;
                snprintf(&shorttxt[j + 1],2,"%d",count);
                j += 2;
                count = 1;
                letter = longtxt[i];
            }
        }
    }
    int main()
    {
        char longtxt[LONG] = "aaabbffffdd",shorttxt[SHORT];
        longtext(longtxt,shorttxt);
        printf("%s", shorttxt);
    }
    

提交回复
热议问题