char类型函数(C++入门?)
前几天测试,本来想用char自带的函数
然而发现自己并不是很会。。。
1.0 复制
1.1 strcpy
原型:char* strcpy(char* dest, char* src);
功能:把从src地址开始且含有 ‘\0’结束符的字符串复制到以dest开始的地址空间
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="abcde";char dest[100];strcpy(dest,src);printf("%s",dest);//输出>> abcde
}
1.2 strncpy(部分复制)
原型: char* strncpy(char* dest, char* src, int size_tn);
功能:将字符串src中最多n个字符复制到字符数组dest中(ta并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针
说明:如果n > dest串长度,dest栈空间溢出产生崩溃异常
- src串长度<=dest串长度
如果n=(0, src串长度),src的前n个字符复制到dest中
但是由于没有NULL字符,所以直接访问dest串会发生栈溢出的异常情况
这时,一般建议采取memset将dest的全部元素用null填充- 如果n = src串长度,与strcpy一致
- 如果n = dest串长度,[0,src串长度]处存放于desk字串,(src串长度, dest串长度]处存放NULL
- src串长度>dest串长度
- 如果n =dest串长度,则dest串没有NULL字符,会导致输出会有乱码
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="SWT is so great! We should % him everyday.";char dest[100];memset(dest,0,sizeof(dest));strncpy(dest,src,10);printf("%s\n",dest);//输出>>SWT is so memset(dest,0,sizeof(dest));strncpy(dest,src,sizeof(src));printf("%s\n",dest);//输出>>SWT is so great! We should % him everyday.memset(dest,0,sizeof(dest));strncpy(dest,src,sizeof(dest));printf("%s\n",dest);//输出>>SWT is so great! We should % him everyday.char des[10];memset(des,0,sizeof(des));strncpy(des,src,sizeof(src));printf("%s\n",des);//exe停止工作
}
2.0 合并
2.1 strcat
原型: char* strcat(char* dest, char* src);
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的 ‘\0’)并添加 ‘\0’
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="OI!";char dest[]="We like ";strcat(dest,src);printf("%s",dest);//输出>>We like OI!
}
2.2 strncat(部分合并)
原型: char* strncat(char* dest, char* src, int n);
功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的 ‘\0’)并添加 ‘\0’
返回指向dest的指针
说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="Please login in here!#$%@$@%@#$@%";char dest[]="Welcome to the largest talking room of SLYZ! ";strncat(dest,src,21);printf("%s",dest);//输出>>Welcome to the largest talking room of SLYZ! Please login in here!
}
3.0 查找
3.1 strchr(查找字符)
原型: char* strchr(char* s, char c);
功能: 查找字符串s中首次出现字符c的位置
说明: 返回首次出现c的位置的指针,如果s中不存在c则返回NULL
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="Can you find some thing?";int t=strchr(src,'?')-src;printf("%d",t);//输出>>23
}
3.2 strchr(查找字符串)
原型: char* strstr(char* haystack, char* needle);
功能: 从字符串haystack中寻找needle第一次出现的位置(不比较结束符”\0”)
说明: 返回指向第一次出现needle位置的指针,如果没找到则返回NULL
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="Can you find some thing?";int t=strstr(src,"thing")-src;printf("%d",t);//输出>>18
}
4.0 比较
4.1 strcmp(区分大小写)
原型: int strcmp(char* s1, char* s2);
功能: 比较字符串s1和s2,区分大小写
说明: 当s1 < s2时,返回值<0;
当s1 = s2时,返回值=0;
当s1 > s2时,返回值>0
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="Hello!";char dest[]="hello!";if (!strcmp(src,dest)) printf("SAME");else printf("DIFFERENT");//输出>>DIFFERENT
}
4.2 stricmp(不区分字母的大小写)
原型: int stricmp(char* s1, char* s2);
功能: 比较字符串s1和s2,但不区分字母的大小写
说明: 当s1 < s2时,返回值<0;
当s1 = s2时,返回值=0;
当s1 > s2时,返回值>0
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="Hello!";char dest[]="hello!";if (!stricmp(src,dest)) printf("SAME");else printf("DIFFERENT");//输出>>SAME
}
4.3 strncmp (部分比较,区分字母的大小写)
原型: int strncmp(char* s1, char* s2, int n);
功能: 比较字符串s1和s2的前n个字符
说明: 当s1 < s2时,返回值<0;
当s1 = s2时,返回值=0;
当s1 > s2时,返回值>0
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="A APPLE A DAY.";char dest[]="a apple a day.";if (strncmp(src,dest,8)==0) printf("SAME");else printf("DIFFERENT");//输出>>DIFFERENT
}
4.4 strnicmp (部分比较,不区分字母的大小写)
原型: int strnicmp(char* s1, char* s2, int n);
功能: 比较字符串s1和s2的前n个字符但不区分大小写
说明: 当s1 < s2时,返回值<0;
当s1 = s2时,返回值=0;
当s1 > s2时,返回值>0
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char src[]="A APPLE A DAY.";char dest[]="a apple a day.";if (strnicmp(src,dest,8)==0) printf("SAME");else printf("DIFFERENT");//输出>>SAME
}
5.0 转化
5.1 strupr(小写转大写)
原型: char* strupr(char* s);
功能: 将字符串s转换为大写形式
说明: 只转换s中出现的小写字母,不改变其它字符
返回指向s的指针
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char s[]="Let's % SWT together!";strupr(s);printf("%s",s);//输出>>LET'S % SWT TOGETHER!
}
5.1 strlwr(大写转小写)
原型: char* strlwr(char* s);
功能: 将字符串s转换为小写形式
说明: 只转换s中出现的大写字母,不改变其它字符
返回指向s的指针
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char s[]="Let's % SWT together!";strlwr(s);printf("%s",s);//输出>>let's % swt together!
}
5.3 strrev(倒置)
原型: char* strrev(char* s);
功能: 把字符串s的所有字符的顺序颠倒过来(不包括空字符”\0”)
说明: 返回指向颠倒顺序后的字符串指针
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char s[]="!uoy kcor lliw eW";strrev(s);printf("%s",s);//输出>>We will rock you!
}
5.4 strset(设置)
原型: char* strset(char* s, char c);
功能: 把字符串s中的所有字符都设置成字符c
说明: 返回指向s的指针
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int main()
{char s[]="(!@&*#$^*@#&^(!@#*))";strset(s,'%');printf("%s",s);//输出>>%%%%%%%%%%%%%%%%%%%%
}
char类型函数(C++入门?)相关推荐
- 常用char 类型函数的介绍
昨天学习了C语言的几种常用的变量类型,今天整理一下两对常用的char类型输入输出的函数,与大家共同学习,刚开始接触,需要学习的地方很多,欢迎感兴趣的同学交流指导. 首先我们来看第一对getchar() ...
- C语言如何返回char类型,函数返回char类型数组,调用 函数后如何接收值?
我现在刚在学C语言,今天想要实现一个功能: 用C语言读取一个文件的指定行,(如读取a.log文件的3--5行),现在实现了读取函数, 但在main函数调用时不知道怎么接收返回的值. 代码如下: #in ...
- char类型怎么输入 c语言_C语言零基础入门到精通视频课程(精品)
C语言入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是其它众多高级 ...
- Matlab出现未定义与‘char’类型的输入参数想对应的函数‘xxx‘
文章目录 1. 背景描述 2. 原因 3. 解决办法 1. 背景描述 在 matlab 上使用基于 matlab 二次开发的 APP,有时候会出现"未定义与'char'类型的输入参数想对应的 ...
- char类型怎么输入 c语言_c语言入门(一)
知识点1[写代码的过程] 编辑器:程序员写代码的过程(记事本.vc6.0.vim)(让程序员看懂) 编译器:查看代码的语法错误,生成汇编语言. 汇编器:将生成好汇编语言 生成 二进制语言(目标文件) ...
- 关于C语言函数返回char *类型的一些问题
@关于C语言函数返回char *类型的一些问题TOC 关于C语言函数返回char *类型的一些问题 以下是我在写C语言中返回值类型为char *函数时遇到的一些问题,在参考了博客:https://bl ...
- char 类型的数组,在函数内能最大能定义多大?
因为进程的虚拟的地址空间是具体划分的,栈的大小是固定的,可以通过 ulimit -a 命令来看. 栈的大小是 8M ,所以 char 类型的数组 不能超过这个大小,否则就会 segment fault ...
- char类型怎么输入 c语言_还没搞懂C语言指针?这里有最详细的纯干货讲解(附代码)...
21ic综合自网络信息 指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文章完全讲解指针. 为什么 ...
- 杂记(1)java读取char类型2. 大小写字母的转换3. 字符串的拼接4. 一串数字排序
1. java读取char类型 应为java中没有nextchar();函数,所以只能先读取一行,即 Sting a=sc.nextline(); char need=a.charAt(0);//取字 ...
最新文章
- tomcat自启动问题 jsvc的 使用
- 软考-信息系统项目管理师-项目组合管理
- Roundcube Webmail信息泄露漏洞(CVE-2015-5383)
- android+sim卡短信,android 信息(mms)开发(七)-- sim卡短信
- 云数据库时代已来,程序员该如何出击?
- Error in mounted hook: “TypeError: Cannot read property ‘init‘ of undefined“
- 神州数码交换机建立VSF与删除VSF
- 转行3D建模,C4D与3ds Max哪个更好入门就业
- 模拟汽车速度控制系统的设计 微机原理课程设计
- Debian安装和配置CA证书
- 中药槲皮素-AKT1与木犀草素IL6/VEGFA直接结合抑制骨关节炎
- word文档页码从正文页开始编号
- Java(十三)集合类(2)
- 姓氏 (C++)简单贪心
- 微信dat文件批量解密
- mt7601驱动使用(二)
- StartDT Hackathon | 技术小白独立部署DataSimba,需要多久?
- python特殊符号怎么打_Python显示特殊字符
- Docker在线文档收集
- 2021五一放假几天,如何用桌面日历便签做日程安排