字符串
来源:互联网 发布:网络人脸搜索网站 编辑:程序博客网 时间:2024/05/29 04:40
头引用
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>
使用字符数组存储字符串
void main(){ //最后'\0'是结束标志,或者设置比字符串多一些的空间 //char str[] = {'h', 'e', 'l', 'l', 'o', '\0'}; //char str[6] = {'h', 'e', 'l', 'l', 'o'}; char str[10] = 'hello'; //可以修改 str[0] = 'a'; printf("%s\n", str); printf("%#x\n", str); getchar();}
字符指针
void main(){ //内存连续排列 char *str = "hello c++"; //不可修改 //str += 1; //*str = 'y'; 错误的 printf("%s\n", str); printf("%#x\n", str); //使用指针加法,截取字符串 str += 3; while(*str){ printf("%c", *str); str++; } printf("\n打印结束"); getchar();}
字符串相关函数
API:字符串文档
strcat字符串拼接函数
- 原型:extern char *strcat(char *dest,char *src);
- 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’。
- 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
// strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; }
strcpy 字符串复制
- 原型:extern char *strcpy(char *dest,char *src);
- 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
- 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
// strcpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char d[20]; clrscr(); strcpy(d,s); printf("%s",d); getchar(); return 0; }
demo:
void main(void){ char dest[50]; char *a = "hello"; char *b = "world"; strcpy(dest, a); strcat(dest, b); printf("%s\n", dest); system("pause");}
strchr 查找字符串s中首次出现字符c的位置
原型:extern char *strchr(char *s,char c);
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
举例:
// strchr.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char *p; clrscr(); strchr(s,'V'); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; }
strstr 从字符串haystack中寻找needle第一次出现的位置
- 原型:extern char *strstr(char *haystack, char *needle);
- 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)
- 说明:返回指向第一次出现needle位置的指针,如果没有找到则返回NULL
举例:
#include <syslib.h>#include <string.h>main(){ char *s = "Hello c++"; char *l = "c+"; cahr *p; clrscr();//清除文本模式窗口 p = strstr(s, l); if(p){ printf("%s", p); }else{ printf("Not Found!"); } getchar(); return 0;}
strcmp 比较字符串s1和s2 strcmpi 忽略大小写
- 原型:extern int strcmp(char *s1, char *s2);
- 功能:比较字符串s1和s2
- 说明:当s1 < s2 返回<0,当s1 = s2 返回 0, 当s1 > s2 返回 > 0
举例:
#include <syslib.h>#include <string.h>main(){ char *s1 = "hell0, c"; char *s2 = "hello, c++"; int r; clrscr(); r = strcmp(s1, s2); if(!r){//r == 0 printf("s1 == s2"); }else if(r > 0){ printf("s1 > s2"); }else if(r < 0){ printf("s1 < s2"); } getchar(); return 0;}
strset 把字符串s中的所有字符都设置成字符c
- 原型:extern char *strset(char *s , char c);
- 功能:把字符串s中的所有字符都设置成字符c
- 说明:返回指向s的指针
举例:
#include <syslib.h>#include <string.h>main(){ char *s = "hello, c++); clrscr(); strset(s, 'n'); printf("%s", s); getchar(); return 0;}
atoi 字符串转为int类型
atol 将字符串转换为长整型值
void main(void){ char* str = "a123"; //int r = atoi(str); printf("%d\n", r); system("pause");}
strtod字符串转double类型
void main(void){ char* str = "77b8b"; char** p = NULL; //char* p = str + 2; //参数说明:str为要转换的字符串,p为第一个不能转换的字符的指针 double r = strtod(str, p); printf("%lf\n", r); printf("%#x\n", p); system("pause");}
strupr 将字符串s转换为大写形式
- 原型:extern char *strupr(char *s);
- 功能:将字符串s转换为大写形式
- 说明:只转换s中出现的小写字母,不改变其它字符,返回指向s的指针。
举例:
#include <syslib.h>#include <string.h>main(){ char *s = "Hello World"; clrscr(); printf("%s", strupr(s)); getchar(); return 0;}
strlwr 将字符串s转换为小写形式
- 原型:extern char *strlwr(char *s);
- 功能:将字符串s转换为小写形式
- 说明:只转换s中出现的大写字母,不改变其他字符。返回指向s的指针。
举例:
#include <syslib.h>#include <string.h>main(){ char *s = "Hello World"; clrscr(); printf("%s", strlwr(s)); getchar(); return;}
自定义转换为小写
void mstrlwr(char str[], int len){ int i = 0; for(; i < len; i++){ //A-Z 字母 a-z if(str[i] >= 'A' && str[i] <= 'Z'){ str[i] = str[i] - 'A' + 'a'; } }}void mian(void){ char str[] = "Hello World"; mstrlwr(str, strlen(str)); printf("%s\n", str); system("pause");}
删除字符串中指定的字符
void delchar(char *str, char del){ char *p = str; while (*str != '\0') { if (*str != del) { *p++ = *str; } str++; } *p = '\0';}
删除最后一个字符
void main(void){ char str[] = "hello,"; str[strlen(str) - 1] = '\0'; printf("%s\n", str); system("pause");}
memcpy 由src所指内存区域复制count个字节到dest所指内存区域。
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
举例:
// memcpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char d[20]; clrscr(); memcpy(d,s,strlen(s)); d[strlen(s)]=0; printf("%s",d); getchar(); return 0; }
memchr 从buf所指内存区域的前count个字节查找字符ch
原型:extern void *memchr(void *buf, char ch, unsigned count);
功能:从buf所指内存区域的前count个字节查找字符ch。
说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
举例:
// memchr.c #include <syslib.h> #include <string.h> main() { char *s="Hello, Programmers!"; char *p; clrscr(); p=memchr(s,'P',strlen(s)); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; }
memmove 由src所指内存区域复制count个字节到dest所指内存区域
原型:extern void *memmove(void *dest, const void *src, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
举例:
// memmove.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; clrscr(); memmove(s,s+7,strlen(s)-7); s[strlen(s)-7]=0; printf("%s",s); getchar(); return 0; }
strpbrk 在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内
- 原型:extern char *strpbrk(char *s1, char *s2);
功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。
说明:返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。
举例:
// strpbrk.c #include <syslib.h> #include <string.h> main() { char *s1="Welcome To Beijing"; char *s2="BIT"; char *p; clrscr(); p=strpbrk(s1,s2); if(p) printf("%s\n",p); else printf("Not Found!\n"); p=strpbrk(s1, "Da"); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; }
1 0
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- LeetCode-Missing Number
- 如何在myeclipse里配置多个tomcat
- vim剪切命令
- 艾弗森、穆大叔遭“姚式幽默”调侃 全场爆笑
- 构建乘积数组
- 字符串
- c语言中的异常处理,setjmp 与 longjmp函数
- Spring Boot 中应用Spring data mongdb
- Spring最小化xml配置二之注解方式@Autowired
- 使用React-route和Webpack快速构建一个react程序
- 球员评历史最佳阵:乔丹魔术师坚如磐石詹皇选自己
- 一小时包教会 —— webpack 入门指南
- Android的ANR详解(原因和方案)
- 梯度下降法解多元线性回归