以下是引用liao06550107在2012-1-11 21:20:24的发言:
#include
#include
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;
}
嗯,你这里用的是字符传递。呵呵,看来小弟我基础确实搓
#include
#include
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;
}
认为事物非黑即白是缺智慧的表现……