5. 实验12-5:指针实现数字和字符分离(指针下)
编写函数void fun(char *s, char *s1, char *s2),将s所指向的字符串中的数字转化为数字串存放在s1所指向区域,字母字符转化为字符串存放在s2所指向的区域。主函数中输入字符串,调用函数后输出转换后结果。
【输入形式】
字符串
【输出形式】
分离结果
【样例输入】
a1b2c3*h8h7g6
【样例输出】
123876 abchhg
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void segerate(char *str,char str_len,char *str_num,char *str_alpha) {
char *p = str_num;
char *q = str_alpha;
char *step = str;
int i;
for (i = 0; i < str_len; ++i) {
if (*step >= 'a' && *step <= 'z') {
*q = *step;
++q;
} else if (*step >= '1' && *step <= '9') {
*p = *step;
++p;
}
step++;
}
puts(str_num);
puts(str_alpha);
}
int main() {
char str[10];
char str_num[10] = { '\0' };
char str_alpha[10] = { '\0' };
gets(str);
segerate(str, strlen(str), str_num, str_alpha);
return 0;
}
感谢东北大学计算机学院 研二的一鸣学长(助教老师)的帮助。
下载源文件
得分10.00 最后一次提交时间:2023-06-15 17:08:55
成功编译,但有警告信息. Main.c: In function 'main': Main.c:78:5: warning: implicit declaration of function 'gets' [-Wimplicit-function-declaration] gets(str); ^ /tmp/cc7Yn1jl.o: In function `main': Main.c:(.text.startup+0x2e): warning: the `gets' function is dangerous and should not be used. 共有测试数据:2 平均占用内存:1.209K 平均CPU时间:0.00300S 平均墙钟时间:0.00299S
| ||||||
虽然有警告,但是没有问题,还是可以拿到正确的测试数据的。
最后再次感谢我的一鸣学长。