C语言中函数如何返回字符串
C语言中实现函数返回字符串,首先要确定函数返回的字符串地址的来源,一般分为四种方式:
函数形参带进来的地址
静态局部变量地址
局部变量地址,必须在函数中用malloc()函数进行地址分配
采用全局变量地址
参考代码:
void func1( char *s ) //通过形参返回字符串
{
strcpy( s, "hello");
}
char * func1_1( char *s ) //另一种写法
{
strcpy( s, "hello");
return s ; //返回形参地址,方便程序调用
}
char * func2( void )
{
static char s[100]; //不能是非静态变量,否则,子函数结束,局部变量被释放,调用者得到一个无效的地址值。
strcpy( s, "hello");
return s ; //返回静态局部变量地址,由调用者采用相应的指针变量接收返回值,得到字符串数据。
}
char * func3( void )
{
char *s ;
s=(char *)malloc( 100 );
strcpy( s, "hello");
return s ; //返回s值,该地址需要调用者去free()释放。
}
//定义全局变量
char globle_buf[100];
void func4( void )
{
strcpy( globle_buf, "hello");
}
char * func4_1( char *s ) //另一种写法
{
strcpy( globle_buf, "hello");
return globle_buf ; //返回全局变量地址,方便程序调用
}
C语言中字符串的查找与替换
C语言中可以使用字符串函数如strstr()函数进行字符串的查找,使用strreplace()函数进行字符串的替换。
strstr()函数会在一个字符串中搜索另一个给定字符串的第一次出现,如果找到则返回该字符串在原字符串中的地址,否则返回空指针。
而strreplace()函数可以将一个字符串中的某些子串替换成指定的字符串。
它需要指定要被替换的子串、替换成的新字符串以及原字符串中该子串的位置。
需要注意的是,在操作字符串时要注意空间的分配和释放,使用完毕后要及时释放内存,以免造成资源浪费和内存泄漏。
C语言的返回值返回到什么地方了
返回值是c语言中一个重要的概念,指的是函数执行完以后return的结果。
在一般的c教材中,都有比较详细的介绍。返回值的形式跟函数的类型有关,返回值可能是一个数据,一个指针,一个字符串等等。在调用这个函数的地方,可以根据返回值判断函数的执行是否正确或获取想要的信息。
举个例子来说吧,
intadd(intx,inty)
{
inta;
a=x+y;
returna;
}
这个函数返回的是两个数相加的结果,你要是在一个函数中调用这个函数,可以通过返回值得到两个数据的和,如
intget_add()
{
intb;
b=add(1,2);
printf("%d\n");
return0;
}
当你调用add函数,该函数返回的是a,你在get_add中调用时指定b=add();,那a就返回给了b,这个b就是你要的1+2的结果。在get_add函数中的return值是0,那么你就可以根据这个函数的返回值确定这个函数是否执行成功了,如
intmain()
{
intc;
c=get_add();
if(c==0)
{
printf("ok\n");
}
else
{
printf("error\n");
}
}
在这里,你知道get_add的返回值是0,如果调用这个函数返回值不是0,那就说明这个函数在执行的过程中出现了差错。
当然函数的返回值也可以是一个指针,这个指针里有你想要的东西。需要说明的是,有的函数是没有返回值的,比如顶一个void的函数没有返回值。
我只是举个例子来说明下问题,跟详细的东西需要你自己找了。