20213106 2021-10-03 18:33 采纳率: 85.7%
浏览 36
已结题

C语言数组问题,求解答

#include<stdio.h>
int main()
{
int i,j;
char str[80];
printf("请输入字符串");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='a'&&str[i]<='z')
{
for(j=i+1;str[j]!='\0';j++)
str[j-1]=str[j];
i--;
}
}
puts(str);
}

img

题目是删去小写字母,保留数字,为什么我写的这个最后一个数会出现几次
  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-10-03 19:35
    关注

    修改如下,供参考:

    #include<stdio.h>
    int main()
    {
        int i,j;
        char str[80];
        printf("请输入字符串");
        gets(str);
        for(i=0;str[i]!='\0';) //修改 i++
        {
            if(str[i]>='a'&&str[i]<='z')
            {
               for(j=i+1;str[j]!='\0';j++)
                   str[j-1]=str[j];
                str[j-1] = '\0';//i--; //修改
            }else        //修改
                  i++;   //修改
        }
        puts(str);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月12日
  • 已采纳回答 10月4日
  • 创建了问题 10月3日