删除第一个_不使用指针在一个数组内删除首部和尾部数字字符

题目:

从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度(限定在一个数组内进行)

说明:
数组长度可定义为50或100,输出的时候统一写成

printf("%s* %dn", a, strlen(a));//a是数组名,数组名可任意命名

举例:
输入的字符串为:

,删除首部和尾部数字字符后字符串变成:
,长度为

如何用C语言实现?

#include <stdio.h>
#include <string.h>
int main(){
    char a[100];//定义长度为100的数组
    int i,n;
    printf("Please enter a string:n");
    scanf("%s",a);//从键盘接收字符
    n=strlen(a);//获得a的长度,注意最后一个是'0'是字符串结尾标记,故而for循环的时候要n--
    for(n--;a[n]>='0' && a[n]<='9';n--);
/*从单词的最后第一个字母往前依次循环判断是否为数字,如果是什么也不做。*/
    a[n+1]='0';//如果从后往前第n的字母不是数字,那么就将n+1标记为字符串结尾
    for(i=n=0;a[n]>='0' && a[n]<='9';n++);
/*从单词字母的第一个字母往后依次循环判断是否为数字,如果是什么也不做。*/
    while(a[i++]=a[n++]);
/*循环,将第一个字母(非数字)给a0,第二个给字符(无论是不是数字)给a1*/
    printf("%s* %dn", a, strlen(a));
/*
输出的时候遇见'0'就会结束,保证了尾部的数字不被输出,并且strlen(a)从左往右读取遇见'0'停止
且'0'不算字符
删除前:
'1'        '2'        'a'        '5'        'b'        'c'        '3'        '4'        '0'
a[0]       a[1]       a[2]       a[3]       a[4]      a[5]        a[6]       a[7]       a[8]
删除后:
'a'        '5'        'b'        'c'        '0'        'c'        '3'        '4'        '0'
a[0]       a[1]       a[2]       a[3]       a[4]      a[5]        a[6]       a[7]       a[8]
*/
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值