字符串--从函数返回字符串指针

news/2024/11/29 22:52:05/

许多字符串处理函数是不需要返回值的,但实际上它们都被设计成了有返回值的函数。例如字符串赋值函数的函数原型为:

char *strcpy(char *str1, const char *str2);

字符串连接函数strcat()的函数原型为;

char *strcat(char *str1,const char *str2);

这两个函数返回的都是字符指针str1,即存储字符串str1的内存空间的首地址,为什么要这样设计字符串处理函数呢?
其实,这样的设计并非是多此一举,它的主要目的是为了增加使用时的灵活性,如支持表达式的链式表达,方便一些级联操作
例如,可将下面两条语句:

strcat(str1,"Hello China");
len = strlen(str1);

直接写成:

len = strlen(strcat(str1,"Hello China"));

再如,我们可将

strcat(str1,str2);
printf("%s",str1);

直接写成:
printf(“%s”,strcat(str1,str2));
函数之间的握手(信息交换)是通过函数参数和返回值来实现的。因此设计一个函数时,必须首先考虑有几个参数,分别是什么数据类型;同时还要考虑函数返回值的类型,即函数调用完成后,应当返回给调用者什么样的结果。
函数返回值可以是一个数值运算的结果值,也可以是一个代表函数调用成功或失败的逻辑值(True或False,在C语言中分别用非0和0表示)。但是函数只能返回一个值,如何从函数返回一组值(数组或字符串)呢?
一种常见的方法是利用数组或者指针作为函数参数,通过传地址调用来获得这些数据值,另一种方法就通过返回指针值得函数来返回一个地址值,即只想存储器这些数据的一段连续内存空间得首地址,从而获得这些数据值。
返回指针值得函数得定义方式与以前定义函数得方式基本相同,唯一不同的是在函数名的前面多了一个“*”号。例如,可按如下方式来声明一个返回指针值得函数:
char *mystrcat(char *dststr,const char * srcstr);
这里mystrcat是函数名,因为()在C语言中具有最高的优先级,所以mystrcat将首先与()结合,表示mystrcat()是一个函数,他有两个形参dststr和srcstr,*号作为一元运算符比()得优先级稍低,所以他说明函数得返回值是一个字符指针。

例题:不适用字符串处理函数strcat(),编程实现strcat()得功能。(返回字符串指针)

#include <stdio.h>
#define N 80
char *mystrcat(char *dststr,char *srcstr);
int main(void)
{char first[2*N]; char second[N];printf("Input the first string:");gets(first);printf("Input the second string:");gets(second);printf("The result is :%s\n",mystrcat(first,second));return 0;
}char *mystrcat(char *dststr,char *srcstr)
{char *pstr = dststr;while(*dststr!='\0')//计算第一个字符串长度。 {dststr++;}for(;*srcstr!='\0';dststr++,srcstr++)// 从first得空位置开始复制第二个字符串。{*dststr = *srcstr;}*dststr='\0';return pstr;
}

iti


http://www.ppmy.cn/news/431006.html

相关文章

【C++】函数重载及引用

目录 一、函数重载 1、函数重载的概念 2、名字修饰 二、引用 1、引用概念 2、引用特性 3、常引用 4、引用的使用场景 4.1 做参数 4.2 做返回值 5、传值、传引用效率比较 6、引用和指针的区别 一、函数重载 1、函数重载的概念 函数重载&#xff1a;是函数的一种特殊情况&#…

转:苹果iphone APP界面设计尺寸官方版

苹果iphone APP界面设计尺寸官方版 转载于:https://www.cnblogs.com/stephen-init/p/4221326.html

【2.3.3被拒】苹果iOS上架屏幕截图尺寸及制作介绍

苹果上架需要的屏幕快照截图,各尺寸的截图是要求不同的机型去截图,如果不对应,就会被拒反馈2.3.3被拒条款! iOS APP上架被拒重新提交审核教程 下面是相关截图的介绍,根据要求做! 6.5寸(必须要)是x系列刘海屏iPhone手机截图(iPhone X、iPhone XS、iPhone XS …

Iphone各个型号机型的尺寸

这篇文章写得很详细&#xff1a; 这篇博客转载他人的&#xff0c;下面是他人的地址 http://blog.csdn.net/phunxm/article/details/42174937 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(p…

苹果笔记本的end键_苹果电脑快捷键使用 Mac快捷键大全详细介绍

相信有很多刚开始使用苹果电脑操作系统的用户&#xff0c;都并不了解整个MAC操作系统&#xff0c;就连一般快捷键的使用都不清楚&#xff0c;这让人很感觉很苦恼。下面&#xff0c;小编就来向大家分享一下Mac快捷键大全的详细介绍&#xff0c;记住这些常用的快捷键&#xff0c;…

苹果电脑如何快速用计算机,苹果电脑快捷键如何使用 Mac快捷键大全详细教程...

苹果电脑快捷键如何使用?很多刚开始使用苹果电脑操作系统的用户,都并不了解整个MAC操作系统,就连一般快捷键的使用都不清楚,这让人很感觉很苦恼。下面,小编就来向大家分享一下Mac快捷键大全的详细介绍。 快捷键图示 首先,总结一下Mac快捷键的图形符号: 苹果电脑 Mac中主…

storyboard 苹果启动图_IOS启动图设置【图片尺寸】

方法一&#xff1a;通过Assets.xcassets设置。 1.Tagets中Launch Images Sourc 选择Assets,同时Launch Screen File设置为空值。 2.如果Assets.xcassets不存在LaunchImage,那么右击进行创建。 3.按规定只存拖入图片到LaunchImage中&#xff0c;图片格式需要是png&#xff0c;图…

苹果sf字体_字体基础知识

字体是界面设计的基石 字体是排版中最重要的元素,对用户的阅读体验有着至关重要的作用。一般来说,设计师需要了解的字体通常有中文字体和西文字体两种。西文字体由来已久,从最早的罗马字体到现在苹果手机中的SF-UI字体,经历了许多设计上的变革。而中文字体的发展并没有西文…