问题 : C语言实习题五——6.用指针实现子字符串提取
时间限制: 1 Sec 内存限制: 128 MB
提交: 4667 解决: 2107
[提交][状态][讨论版]
题目描述
用指针实现:由键盘输入一串字符,从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。
输入
键盘输入一串字符。
输出
从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。
样例输入
0123456 5 2
样例输出
56
提示
① 定义二个字符数组zfsour[100]、zfdest[100],zfsour存放原串,zfdest存放新串;
② 定义二个指针变量*pzfsour、*pzfdest; zfsour字符数组的首地址;
③ 从键盘输入取字符的开始位置m(即下标值)和要取的字符个数n;
④ 让指针变量pzfsour指向zfsour+m处,让pzfdest指向zfdest字符数组的首地址;
⑤ 通过n次循环,逐次赋值、移动指针,即将原串中的n个字符存到新串字符数组中。
代码实现
#include <stdio.h>
int main() {
char zfsour[100], zfdest[100];
char* pzfsour = (char*)zfsour;
char* pzfdest = NULL;
scanf("%s", zfsour);
int m, n;
scanf("%d%d", &m, &n);
pzfsour += m;
pzfdest = pzfsour + n;
int i = 0;
for (pzfsour, i; pzfsour < pzfdest; pzfsour++,i++) {
zfdest[i] = *pzfsour;
}
zfdest[i] = '\0';
printf("%s\n",zfdest);
return 0;
}