字符串输入输出练习
输入起始位置m、长度l及字符串s,要求输出字符串s从第m个字符开始的长度为l的子串。
输入格式:
测试数据有多组,处理到文件尾。 每组测试数据输入一行,首先是以一个空格间隔的两个整数m、l,分别表示起始位置和长度,然后在一个空格之后是一个字符串s(长度不超过80,可能包含空格)。测试数据保证取得的结果字符串至少包含一个字符。
输出格式:
对于每组测试,输出字符串s从第m个字符开始的长度为l的子串(若长度不足l,则只需输出从第m个字符开始到最后一个字符结束的子串)。每两组测试数据之间留一个空行。
#include<stdio.h>
int main()
{
int m,l;
char s[80][80];
char ss[80][80];
int i,j=0;
//测试数据有多组,处理到文件尾。 每组测试数据输入一行,用二维数组存放多个字符串。
while(scanf("%d %d",&m,&l)!=EOF&&l>=0)
{
gets(s[j]);
for(i=m;i<m+l;i++)
{
ss[j][i-m]=s[j][i];
}
ss[j][l]='\0';
//在获取到的字符串末尾加上\0,无论是否复制完s[j]字符串都可以作为结束的标志
//(也就是说如果遇到s[j]字符串原本的\0,就会结束输出,不在考虑我们后面添加的\0)
j++;
}
for(i=0;i<j;i++)
{
puts(ss[i]);
if(i!=j-1)
{
printf("\n");
}
}
}