博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言字符串函数
阅读量:4570 次
发布时间:2019-06-08

本文共 2678 字,大约阅读时间需要 8 分钟。

注意!!!要严格区分单引号和双引号!单引号内只能是一个字符,而双引号是字符数组 #include
#include
#include
int main(){ char mystr[]="猴子和我一起来,我和猴子一样帅"; gets(mystr); system("pause"); return EXIT_SUCCESS; }

puts()-----输出字符串并换行

gets()-----获取字符串,可以有空格

scanf-----获取输入,由于gets()和scanf()无法获知数组的大小,只有遇到结束符或换行符才终止,不可以有空格,因此可能导致数组越界,所以要加上宏 #define _CRT_SECURE_NO_WARNINGS

要么添加在代码的开头,要么添加在IDE的设置项中,如下

 

fgets() 三个参数 字符指针变量名  长度 输入流(std):两种情况----输入信息小于等于字符指针长度,会在输入的末尾加上\n\0,或者,在超过长度时,等待换行符\n(也就是当我们敲击键盘回车键的时候)的输入,把\n替换为\0;由此看出fgets()比gets()安全

#include 
#include
int main(){ char cpc[10] = { 0 }; char cj[10] = { 0 }; printf("%p\n",cpc); printf("%p\n", cj); fgets(cpc, sizeof(cpc), stdin); printf("%s\n", cpc); system("pause");}

 

scanf("%*d%s")%*d忽略数字,*c忽略字符,如果忽略的是字符串就麻烦了,要写字符串指针长度个*c(例如有100就写100个)

 

#include 
#include
#include
int main(){ char wenwa[]="cpc"; printf("%-5s",wenwa);  printf("%5s",wenwa); system("pause"); return EXIT_SUCCESS; }

 strlen()字符串长度

int main(){   char wenwa[]="sunshine is lady rock you like a baby";   int mylen = strlen(wenwa);   printf("%d\n",mylen);   printf("%d\n",sizeof(wenwa));       system("pause");     return EXIT_SUCCESS;   }

strcpy(目标地址,源地址)字符串拷贝

char target[];char src[];if (strcpy(target,src)!=NULL){     }

strncpy()

int main(){     char mywords[]="喜欢陈培昌";     char hiswords[];     strcnpy(hiswords,mywords);     hiswords[5]=0;     printf(hiswords);     return EXIT_SUCCESS;  }

 strcat()

#include 
#include
#include
int main(){ char myarr[] ={
0}; char myarr2[]={
0}; gets(myarr); gets(myarr2); printf(strcat(myarr,myarr2)); system("pause"); return EXIT_SUCCESS; }

strncat()

int main(){        char myarr[8] = { 0 };    char myarr2[10]={ 0 };    gets(myarr);    gets(myarr2);    strncat(myarr, myarr2, sizeof(myarr)-strlen(myarr) - 1);    puts(myarr);    system("pause");    return EXIT_SUCCESS;}

sprintf()向数组打印字符串

strchr(a,'c')在a中找到‘c’,并返回位置。

char *c = strchr(a,'c')

strstr (a,"345")---查找字符串,找不到,返回NULLstrtok() 分割字符串char *p = strtok();printf(p)

atoi()

char wenwa[] ="789";printf(atoi(wenwa));wenwa是char数组atoi()把数组转换为整数,两者地址不一样

一种怪异的把字符串转换为数字的方法

char mynum[] = "456";(mynum[0]-0x30)*1000;+(mynum[1]-0x30)*100;+(mynum[2]-0x30)*10;

 字符串逆置

 查找数组中第二大的数字

#include 
#include
int main(){ int mynum[]={
43,88,56,24,78,12,8}; return EXIT_SUCCESS;}

 strlen字符串长度不包括末尾的'/0'

sizeof()返回的是数组一共占据了多少字节的内存空间

sprintf存在缓冲区溢出的问题。

strtok()字符串拆分

 

转载于:https://www.cnblogs.com/saintdingspage/p/10332395.html

你可能感兴趣的文章
【堆/排序】堆排序的两种建堆方法
查看>>
类的内置方法
查看>>
项目中使用的第三方开源库
查看>>
NOIP2009 潜伏者
查看>>
本地预览的vue项目,在githubpage静态展示
查看>>
SC命令---安装、开启、配置、关闭 cmd命令行和bat批处理操作windows服务
查看>>
Register Form Code
查看>>
iphone 如何清空UIWebView的缓存
查看>>
Java——变量
查看>>
定时关闭AWS上的EC2机器实例
查看>>
grep、awk、sed命令详解1
查看>>
Jenkins邮件配置
查看>>
MYSQL数据库的设计与调优
查看>>
在Apache下开启SSI配置
查看>>
居然有这种操作?各路公司面试题(作者:马克-to-win)
查看>>
Jmeter:图形界面压力测试工具
查看>>
java线程:Atomic(原子)
查看>>
环境准备—之—linux下安装python3和pip3
查看>>
做了这么久的 DBA,你真的认识 MySQL 数据安全体系?【转】
查看>>
Shell习题100例
查看>>