题目描述
编写一个函数int Substring(char str1[],char str2[],int index),其作用是,将从字符串str1 (长度超过30) 的第index个字符开始的所有字符复制,生成新的字符串str2,如果成功生成,函数返回1,如果不能成功生成,返回0
输入
测试数据的组数n
第一组数据
第二组数据
........
输出
成功生成就输出子串,不成功生成,输出"IndexError"
IO模式
本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。

代码如下:
#include <stdio.h>
#include <string.h>
int Substring(char str1[],char str2[],int index);
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
char str1[100]; //原字符串
char str2[100]; //新的截取出的字符串
int index;
getchar();//冲掉之前输入的\n
gets(str1);//输入原字符串
scanf("%d",&index);//输入从第几位开始截取
if (Substring(str1, str2, index))
printf("%s\n", str2);
else
printf("IndexError\n");
}
return 0;
}
int Substring(char str1[], char str2[], int index) {
int len1 = strlen(str1);//原字符串的长度
if (index<0||index>=len1)//位数不对找不到
return 0;
strcpy(str2, str1+index);
return 1;
}
strcpy()的用法是搜索获得的,把后者复制到前者中(二者都是字符串),(由于还没学指针)我猜str1+index是将要复制的字符串的地址后移index位,即从第index位开始复制
246






