C语言,字符串操作问题

给定一个字符串。请去除串中的数字并反转。

输入格式:
原始串。

输出格式:
去除数字后的反转字符串。

输入样例:
在这里给出一组输入。例如:

he11ll00o w0or8ld!
输出样例:
在这里给出相应的输出。例如:

!dlrow olleh

img

#include <iostream>
#include <stdio.h>

int main()
{
    char c[100];
    char tmp;
    int count=0;
    for (int i = 0; i < 100; i++)
    {
        
        scanf("%c", &tmp);
        if (tmp<'0'|| tmp>'9')
        {
            if (tmp == '\n')
            {
                break;
            }
            c[count] = tmp;
            count++;

            
        }
        
    }
    
    for (int i = count-1; i >=0; i--)
    {
        printf("%c", c[i]);
    }

}




可以另外创建一个字符串,将非数字字符存储到新串,然后从字符串最后一个字符开始输出

void main()
{
  char a[100] = {0};
  char b[100] = {0};
  printf("请输入字符串:");
  scanf("%s",a);
  int i,c=0;
  for(i=0; a[i] != 0;i++)
  {
    if(a[i] >= '0' && a[i] <='9')
      continue;
    b[c++] = a[i];
  }
  for(i=c-1;i>=0;i--)
    printf("%c",b[i]);
}

这个挺容易的

对字符串进行遍历,符合条件的输出就行,没必要创建新的字符串,浪费资源。