专升本C语言试题分析(一)
前言
尝试对C语言专升本题目进行分析,有不对的地方欢迎指正,在边学习边成长!
一、题目
编写函数 Fun23 实现功能如下:指针 s 所指向的字母数字串中只包含数字和字母,实现除了字符串前的数字字符保留,其他的数字字符全部删除。例如:如果 s 的内容为:1234ABCD44432abcde7890,按规定删除后 s 的内容应当是:1234ABCDabcde。
二、分析步骤
1.Fun23()函数的编写
代码如下(示例):
void Fun23(char *s){
int n=0,i=0;
while(s[i]!='\0'&&(s[i]>='0'&&s[i]<='9')){/*先将字符串前的数字全部循环得出*/
n++;
i++;
}/*此时n和i的值一样,均为字符串数字结束时的位置*/
for( ;s[i];i++){/*从字符串中第一个字母开始循环,找到每一个非数字元素*/
if(s[i]<'0'||s[i]>'9'){
s[n++]=s[i];/*拼接到数字的后面,实现删除数字的效果*/
}
}
s[n]='\0';
printf("删除后的内容:%s",s);
}
2.主函数编写
代码如下(示例):
int main(){
char s[32];
printf("请一个字符串:");
scanf("%s",&s);
Fun(s);
return 0;
}
总结
代码如下(示例):
#include<stdio.h>
void Fun23(char *s){
int n=0,i=0;
while(s[i]!='\0'&&(s[i]>='0'&&s[i]<='9')){/*先将字符串前的数字全部循环得出*/
n++;
i++;
}/*此时n和i的值一样,均为字符串数字结束时的位置*/
for( ;s[i];i++){/*从字符串中第一个字母开始循环,找到每一个非数字元素*/
if(s[i]<'0'||s[i]>'9'){
s[n++]=s[i];/*拼接到数字的后面,实现删除数字的效果*/
}
}
s[n]='\0';
printf("删除后的内容:%s",s);
}
int main(){
char s[32];
printf("请一个字符串:");
scanf("%s",&s);
Fun23(s);
return 0;
}
}
以上就是今天要讲的内容,思路大致是,先找到整体字符串中字母出现以前的所有数字,然后从第一个字母开始,将字母紧紧的链接到数字串之后。