从键盘输入一个字符串,删除该字符串的所有首部和尾部数字字符,输出修改后的字符串以及该字符串的长度(限定在一个数组内进行)
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void){
char str[100];
printf("请输入一个字符串:");
scanf("%s",str);
int j;
int i=0; // 从字符串第一个字符开始判断
// https://blog.csdn.net/st66688/article/details/106609066/
// https://www.runoob.com/cprogramming/c-function-isdigit.html
// 删除首部的数字字符
while(isdigit(str[i])!=0){ //如果第一个字符是数字字符,则将后面的字符往前移动一个位置
for(j=i;j<strlen(str)-1;j++){ // 后面的字符往前移动一个位置
char ch = str[j];
str[j]=str[j+1];
str[j+1] = ch;
}
str[j]='\0'; // 移动字符串后,尾部添加一个字符串结尾的空字符'\0'
}
// for(int i=0;i<=strlen(str);i++){
// printf("str[%d]=%c,%d\n",i,str[i],str[i]);
// }
// printf("delete start ,str=%s\n",str);
// 删除字符串尾部的数字字符
i=strlen(str)-1; // 从字符串最后一个字符开始判断
while(i>=0&&isdigit(str[i])!=0){ // 如果当前字符是数字字符,则将此位置赋值为空字符,以删除它
str[i]='\0';
i--; // 判断下一个字符位置
}
str[i+1]='\0'; // 字符串结尾添加一个空字符
//printf("delete end ,str=%s\n",str);
printf("修改后的字符串为:%s,它的长度是:%d\n",str,strlen(str));
// for(int i=0;i<=strlen(str);i++){
// printf("str[%d]=%c,%d\n",i,str[i],str[i]);
// }
return 0;
}