[ 本帖最后由 TonyDeng 于 2012-1-11 14:49 编辑 ]
授人以渔,不授人以鱼。
#include <stdio.h> #include <string.h> void sub_str(char *s1 ,char *s2 ,int m ,int n) { int l2 ,i; char *p1 ,*p2; l2 = strlen(s2); p1 = s2 + l2;//p1指向s2的'\0' p2 = s1 + m - 1; for(i=1 ;i<=n ;i++) //增量运算符所作用的运算对象只能是变量,不能是常量或由运算符构成的表达式。 { //例如,(x+y)++、++5 都是不正确的。 增量运算符作用于 *p1++ = *p2++; //变量以后,与变量一起构成了一个新的表达式──增量表达式。 } //增量表达式不能出现在赋值表达式的左边。例如,i++=1 是不允许的。 *p1 = '\0'; printf("%s\n" ,s2); } int main() { int m = 0, n = 0; char a[80] ,b[80]; printf("输入字符串1:\n"); gets(a); printf("输入字符串2:\n"); gets(b); printf("输入m和n的值例如:2,2\n"); scanf("%d,%d",&m ,&n); sub_str(a ,b ,m ,n); return 0; }