有关字符串指针返回值的问题
#include<stdio.h>char *substring_index(char *str1,char ch,int n)//该函数实现的是如果非负数,截取母串分隔符左边的字符否则截取线串右边的字符
{
char *t;
t=str1;
if(n>=0)
{
while(*t!=ch)
t++;
*t='\0';
}
else
{
while(*t++!=ch);
str1=t;
}
return str1;
}
//返回值为字符串指针常规思路,往往返回系统调用的已给定字符指针的首地址
//如何实现满足首地址是解决问题的关键
char *midsubchar(char* s1,int n,int m)
{
s1=s1+n-1;
*(s1+m)='\0';
return s1;
}
int main()
{
char s1[40]="changxinwen-刘伟锡";
puts(substring_index(s1,'-',2));
puts(midsubchar(s1,3,4));
puts(s1);//为什么不与上面的 puts(midsubchar(s1,3,4));结果相同
return 0;
}
下面的devno c++的运行结果
changxinwen
angx
changx
--------------------------------
Process exited after 0.01473 seconds with return value 0
请按任意键继续. . .
[此贴子已经被作者于2026-1-5 16:04编辑过]







