字符串做函数参数和返回值

用字符串常量做函数模板的参数 #include #include using namespace std; //参数以引用传值 template void ref(T const & x) { cout<<typeid(x).name()<<endl; } //参数以非引用传值 template void nonref(T x) { cout<<typeid(x).name()<<endl; } int main() { 阅读详情

前情提要

字符串 做参数 传输的是地址 做返回值 返回的也是地址,但可以使用const来禁止对字符串参数进行修改。

字符串做参数

假设要将字符串作为参数传递给函数,则表示字符串的方式有三种:

  • char数组
  • 用引号括起的字符串常量(也称字符串字面值);
  • 被设置为字符串的地址的char指针。
类型样式
字符串常量“iloveyou”
被设置为字符串地址的char指针char* str=“iloveyou”
char数组char arry[]=“iloveyou”

将字符串作为参数来传递,实际传递的是字符串第一个字符的地址。这意味着字符串函数原型应将其表示字符串的形参声明为char *类型。

假设有函数 void strken(char*)
则应用时可以写成

strken("iloveyou");//字符串首字符地址
strken(arry);//arry[0]的地址
strken(str);//指向字符串首地址的指针

字符串作为返回值

首先要明确,函数无法返回一个字符串,但可以返回字符串的地址。
看代码

#include <iostream>
char* buildstr(char,int );
int main()
{
using namespace std;
int times ;
char ch ;
cout <<  " Enter a character : " ;
cin >> ch ;
cout << " Enter an integer : " ;
cin >> times ;
char *ps =buildstr ( ch , times );
printf("%p\n",ps);//用来输出地址
cout << ps << endl ;
delete [] ps;
// free memory
ps = buildstr ( '+' , 20 ) ;
// reuse pointer
cout << ps << " - DONE-" << ps << endl ;
printf("%p\n",ps);
delete [] ps;
// free memory
return 0;
}
// builds string made of n c characters
char * buildstr ( char c , int n )
{
char * pstr = new char [ n + 1 ] ;
printf("%p\n",pstr);//用来输出地址;
pstr[n] = '\0 ' ;
// terminate string
while ( n-- > 0 )
pstr[n]=c;
// fill rest of string
return pstr ;
}

这是运行结果
在这里插入图片描述
首先,可以看到函数返回的是地址,其次,ps指向的地址实际就是函数buildstr里面用new运算符创造的空间,所以在主函数中,用了delete释放空间

C语言字符串做函数参数 在C语言中,字符串是一种常见的数据类型,它由字符组成的字符数组。我们可以将字符串作为函数参数传递,以便在函数中对其进行操作和处理。这个空字符用于表示字符串的结束,因此在处理字符串时,我们可以根据是否遇到空字符来确定字符串的长度。通过使用字符数组表示字符串,并将其作为函数的参数,我们可以在函数中对字符串进行操作和处理。如上所示,通过将字符串作为函数参数传递,我们可以在函数中对字符串进行各种操作和处理。通过将字符串作为函数参数传递,我们可以在函数内部对字符串进行修改。函数将返回字符串的长度,并将其打印出来。 阅读详情

相关推荐

【C字符串作为函数参数】——如何正确传递字符串参数?

本文介绍了在C语言编程中正确传递字符串参数的方法。无论是使用指向字符数组的指针、字符数组本身,还是直接使用字符串常量,我们都需要小心地处理字符串,以避免出现错误。希望读者能够掌握本文所介绍的技巧,并在日后的编程工作中能够正确地传递字符串参数。

. 2302

将字符串作为参数的函数

字符串是有一系列字符组成,以空值字符结尾。 将字符串作为参数来传递,实际上传递的是字符串的第一个字符的地址。这以为这字符串函数原型应将其表示字符串的形参申明为char *类型。 假设要将字符串作为参数传递给函数,则表示字符串的方式有三种: char 数组名; 用引号的字符串常量(字符串字面值); 被设置为字符串的地址的char指针; char ghost[15] =&quot;galloping&quot;;...

qq_34915122的博客 1万+

在Windows 11上用VirtualBox搞定WRF-Hydro 5.2.0:一个水文模型小白的Ubuntu 22.04虚拟机避坑实录

本文详细记录了在Windows 11上使用VirtualBox和Ubuntu 22.04虚拟机成功编译安装WRF-Hydro 5.2.0水文模型的全过程。从虚拟环境配置、依赖库安装到环境变量设置,作者分享了针对Linux新手的实用避坑技巧和关键命令,帮助科研人员高效完成水文模型的环境搭建。

weixin_30733003的博客 354

字符串和数组作为参数传递

链接:https://www.zhihu.com/question/31203609/answer/50992895 1. 类1: public class ArrayTest { //都是引用传递,输出的结果是"goodbbb" public void arrayPassTest(String s, String[] ss) { ...

viking_xhg的博客 2万+

Python Selenium自动化浏览器实战:从环境搭建到高级技巧

浏览器自动化是现代软件开发与数据处理中的关键技术,它通过程序模拟用户操作,实现网页交互的自动化执行。其核心原理是基于WebDriver协议,通过驱动程序与浏览器进行通信,从而控制浏览器的各种行为。这项技术的价值在于能够将重复性高、耗时长的Web操作转化为可编程、可复用的脚本,极大提升工作效率和准确性。在应用场景上,它广泛覆盖了Web自动化测试、数据采集与爬虫、日常办公流程自动化以及RPA(机器人流程自动化)等多个领域。本文聚焦于Python环境下Selenium这一经典工具,深入讲解其环境配置、八大元素定位

anwenzhao0749的博客 445

CCC数字钥匙3.0标准解读(22)

介绍设备制造商服务器和车辆制造商服务器之间的通信协议.

weixin_41738640的博客 1748

C++第7天

C++第7天

weixin_40860260的博客 658

机器视觉中的特征提取【0】:什么是特征提取,特征提取有什么作用?

1.什么是特征提取? 特征提取的英文叫做feature extractor,它是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。简单来说有两个作用:减少数据维度,整理已有的数据特征。 这里我给一个例子来解释特征提取的第二个作用。那就是我们很熟悉的奖学金评定,我们知道学生的文化课成绩,道德分数,以及各种其他竞赛的成绩。摆在奖学金评定委员会面前的任务就是如何知道一个学生是否...

月下花弄影 5万+

C++字符串作函数参数/函数返回值

//C++字符串作函数参数 #include using namespace std; void C (const char *str) { while(*str) { cout << *str ; str ++; } cout << endl; } int main() { char mmm[15] = "mmmmmmm"; char *nnn = "nnnnnnn";

无名 8003

Python地理空间数据库之geopandas使用详解

地理空间数据分析在许多领域中都有着广泛的应用,包括地理信息系统(GIS)、城市规划、环境科学、地质勘探等。Python GeoPandas是一个强大的库,旨在简化地理空间数据的处理和分析。本文将深入介绍GeoPandas库,包括其基本概念、功能特性、示例代码以及在实际应用中的应用场景。

Rocky006的博客 1万+

避坑指南:Zephyr RTOS与nRF Connect SDK环境搭建常见错误及解决方案

本文详细解析了Zephyr RTOS与nRF Connect SDK环境搭建过程中的常见错误及解决方案,涵盖网络问题、代理设置、SEGGER Embedded Studio配置、分支切换等关键环节。针对开发者实际遇到的痛点问题,提供了一系列实用技巧和深度排错方法,帮助高效完成NCS开发环境部署。

weixin_28685287的博客 172

c/c++:数组做函数参数,传入函数的首地址,相当于传址,指针做函数返回值,数组止做c语言中函数的返回值

c/c++:数组做函数参数,传入函数的首地址,相当于传址,指针做函数返回值,数组做函数禁止做c语言中函数的返回值

weixin_46838716的博客 2035

Ros入门 (十)----激光雷达避障 简易实现

本篇文章通过订阅/scan话题获取障碍物的距离信息,达到避障目的,提供部分代码,仅供参考。

weixin_51157015的博客 1万+

C语言函数参数类型以及返回值类型的一一对应

在平常写程序过程中,无非要使用到函数,写程序的时候经常不知道实参传上去的形参该对应什么类型,或者说有时候不知道怎么样传参,参数的类型该怎么一一对应,博主通过大量失败经验,总结了以下内容 一: 函数实参形参类型一一对应 1:函数无参数 对于无参数的传递就比较简单了,实参放空,形参放空就可以了,具体看以下例子: #include<stdio.h> void fun(); //这里是函数原型,不需要放参数 int main() { fun();//这里是函数调用,不需要放参数 } void fu

峰峰爱吃肉 8574

【CAN总线测试】——使用VH6501 进行Busoff快慢恢复测试

即在IDBase中填标准帧11位二进制ID,如果不满11位,高位补零,凑齐11位,并将下方CurrTriggerField设置干扰前一位AckSlot位,Triggeroffset设置为0。首先确认环境支持VN6501,6501硬件连接成功后,工程的小闪电是正常黄色状态,若是灰色证明缺少License,或者软件安装环境不正确。填写干扰报文ID、干扰位置 注意这里的干扰位置是实际干扰的前一位,TriggerOffset表示偏移量,可以干扰某个字节的具体位.找到并打开Panel后,开启工程,并且配置面板。

LOVE135149的博客 5630

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C++ const修饰函数、函数参数、函数返回值

const修饰函数 在类中将成员函数修饰为const表明在该函数体内,不能修改对象的数据成员而且不能调用非const函数。为什么不能调用非const函数?因为非const函数可能修改数据成员,const成员函数是不能修改数据成员的,所以在const成员函数内只能调用const函数。 #include <iostream> using namespace std; clas...

weixin_30500105的博客 2339

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Python函数参数进阶与返回值全解析

本文详细介绍了Python函数参数的进阶用法与返回值处理。

an_yu_xin的博客 1566

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++ const修饰函数、函数参数、函数返回值的用法

前言 可能有些人会对下面的const的含义,有点迷糊 //11 区间排序,按右端点从大到小排序 struct Range { int l, r; bool operator< (const Range &W) const { return r < W.r; } }; 本文会带你好好理解下const在不同地方的具体含义...

捡起一束光的博客 2614

c语言中的二维数组做函数参数与做返回值的写法以实例演示

本文通过实例演示了C语言中二维数组作为函数参数和返回值的处理方法。在参数传递方面,推荐使用指针形式char (*buf)[er],既灵活又支持参数化维度;对于返回值,需通过typedef定义指针类型别名,并区分静态和动态两种方式:静态方式需将数组声明为static变量,动态方式则使用calloc分配内存并记得free释放。文章还指出了常见错误写法的问题,如直接返回局部数组会导致数据丢失。关键点包括:类型别名的使用、静态变量的注意事项、动态内存的释放时机等。

风中月隐的博客——FPGA加速者 343

python对函数的参数和返回值进行指定类型和检查

python一直以来都不是开发大工程的主流语言,不管是前端还是后端,主要的原因其实就是以下几点: python是解释性语言,运行效率比java等语言慢; python是动态语言,在后期维护的成本非常高,很重要的一点就是没有进行类型检查,当然还包括新建变量不需要声明以及指定类型等等。 但是,在python3.5之后,就新增了对函数参数和返回值的类型指定和检查,以及在新建变量时也可以指定类型。 基...

sgyuanshi的博客 3万+

数组做函数参数,嵌套调用与链式访问

数组做函数参数,嵌套循环与链式访问

2502_91499791的博客 1286

shell函数参数,返回值

函数参数 在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数… 带参数的函数示例: #!/bin/bash funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $#

liu201812的博客 1430

swift 返回值是函数_Swift 函数参数和返回值

Swift 函数参数和返回值在本文中,您将学习不同的用户定义函数,这些函数将通过示例获取不同类型的输入并返回输出。在上一篇文章Swift 函数中,我们了解了函数。现在,我们将探讨在Swift中创建函数的不同方式和类型,即在函数中处理输入和输出。没有参数且没有返回值的函数这些类型的函数不接受任何输入和返回值。funcfuncname(){//语句}或者funcfuncname()->...

weixin_39883462的博客 419

JavaScript函数的参数和返回值

本文将深入探讨 JavaScript 函数参数和返回值的相关知识,结合实际案例和最佳实践,帮助开发者更好地理解和应用这些技术。通过上述内容的学习,相信你已经对 JavaScript 函数的参数和返回值有了更深刻的理解。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。在 JavaScript 中,函数参数是指传递给函数的数据,用于控制函数内部的操作。函数的返回值是执行结果的输出,它可以是任何合法的 JavaScript 数据类型。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 929
上一篇: 字符串的简单概念
下一篇: 搜索,Maze 题解
Charles-cumt
博客等级 码龄8年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值