m0_58203183 2022-06-23 10:17 采纳率: 85.7%
浏览 41
已结题

在字符串中每个数字字符前添加$

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

#if(1)
void main()
{
int i,n;
int count;
char str[100];
printf("please enter one sentence:\n");
scanf("%s",str);

count=strlen(str);

for(i=0;i<=count-1;i++)
{
    if(str[i]>'0'&&str[i]<'9')
    {
        for(n=count-1;n<=i;n--)
        {
            str[n+1]=str[n];//为什么这一步元素后移无法实现,求错误,求解
        }
        str[i]='$';
    }
}
str[i]='\0';
printf("\n");

printf("修改后的字符串:\n");

count=strlen(str);
for(i=0;i<=count-1;i++)
{
    printf("%c",str[i]);
}
printf("\n");
system("pause");

}
#endif

  • 写回答

3条回答 默认 最新

  • emXiaoMing 2022-06-23 10:29
    关注

    帮你改了一下,对比一下

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<string.h>
    
    #if(1)
    void main()
    {
        int i, n;
        int count, extnum = 0;
        char str[100];
        printf("please enter one sentence:\n");
        scanf("%s", str);
    
        count = strlen(str);
    
        for (i = 0; i <= count + extnum - 1; i++)
        {
            if (str[i] >= '0' && str[i] <= '9')
            {
                extnum++;
                for (n = count + extnum - 1; n >= i; n--)
                {
                    str[n + 1] = str[n];//为什么这一步元素后移无法实现,
                }
                str[i] = '$';
                i += 1;
            }
        }
        str[count + extnum] = '\0';
        printf("\n");
    
        printf("修改后的字符串:\n");
    
        count = strlen(str);
        for (i = 0; i <= count - 1; i++)
        {
            printf("%c", str[i]);
        }
        printf("\n");
        system("pause");
    }
    #endif
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月1日
  • 已采纳回答 6月23日
  • 修改了问题 6月23日
  • 修改了问题 6月23日
  • 展开全部