c/c++语言开发共享在C中,如何将整数插入字符串?

我的代码获取了一串字符。 例如“aaabbdddd”函数将字母及其出现的次数插入新字符串。 因此,此特定字符串的输出应为“a3b2d4”。 我的问题是如何将数字插入字符串? 我尝试使用itoa并将整个字符串转换为单个数字。 这是我的代码:

#define _CRT_SECURE_NO_WARNINGS #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; 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值添加到实际数字可以得到正确的结果。

    试试这段代码,它使用snprintf将整数转换为字符串。

    注意:如果计数超过字符大小,您可能需要将大小从2增加。

    需要了解更多c/c++开发分享在C中,如何将整数插入字符串?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

     #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] = "aaabbdddd",shorttxt[SHORT]; longtext(longtxt,shorttxt); printf("%s", shorttxt); } 

      以上就是c/c++开发分享在C中,如何将整数插入字符串?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980704.html

      (0)
      上一篇 2021年12月14日
      下一篇 2021年12月14日

      精彩推荐