标签:c语言 字符串常用命令 strtok sprintf atoi
1.
/*
字符
char,在内存中以ASCII存储;
操作函数#include<ctype.h>
*/
int main(int argc, const char * argv[]) { printf("isalnum('a')=%d\n",isalnum('a'));//isalnum('a')=1 判断是字符 printf("isalpha('a')=%d\n",isalpha('a'));//isalpha('a')=1 判断是英文字母 printf("isdigit('a')=%d\n",isdigit('a'));//isdigit('a')=0 判断是数字字符 printf("islower('a')=%d\n",islower('a'));//判断是小写字符 printf("isupper('a')=%d\n",isupper('a'));//判断是大写字符 printf("isxdigit(7)=%d\n",isxdigit(7));//判断是16进制数字 printf("tolower('A')=%c\n",tolower('A'));//转成小写字母 printf("toupper('a')=%c\n",toupper('a'));//转成大写字母 printf("digittoint('a')=%d\n",digittoint('a'));//16进制转成10进制 printf("ishexnumber('a')=%d\n",ishexnumber('a'));//等价isxdigit 判断是16进制 printf("isnumber('a')=%d\n",isnumber('a'));//等价isdigit 判断是10进制数字字符 return 0; }<span style="color:#e32400;"> </span>
2.
/*
字符串的操作函数
1:基本的输入输出
printf("%s",str);从str这个地址开始,打印到‘\0‘结束
scanf("%s",str);从str这个地址开始,填充字符;//如果目的字符串的空间不够大可能会越界;
*/
int main() { char str[100] = {'A','A','A','A','A'}; scanf("%s",str);//he 会在输入结束后自动加上'\0'; printf("%s\n",str); for(int i=0;i<5;i++) { printf("%c,ASCII is %d\n",str[i],str[i]); } return 0; }
3.
/*
gets(接收地址)//和scanf一样都是到‘\n‘截止,可以接收空格;但是scanf不能接收空格;
puts(字符串首地址)
char *fgets(char * buff , int bufsize , FILE *); 最多读bufsize-1字符
*/
int main() { char str[100] = {'A','A','A','A','A'}; // gets(str);//只给一个地址,运行时可能会越界;运行时系统会给一个告警;warning: this program uses gets(), which is unsafe. fgets(str, 5, stdin);//安全函数,表示只是从缓冲区读取5-1个字符到str中; puts(str); return 0; }
int main() { char str[100]={};//1:buffer合理大;2:先清零是个好习惯; scanf("%s",str); printf("%s\n",str); return 0; }
4.
/*
sprintf(目的字符串, 格式化字符串,参数列表):把格式化字符串打印到目的字符串;
sizeof()存储,占有多少字节;是运算符;
strlen()函数,与内容强相关;#include <string.h>
*/
int main() { char str[100]={'a','a','a','a'}; // printf("hello ios %d\n",1518); sprintf(str, "hello ios %d\n",1518);//把任意转换成字符串; printf("%s",str); }
5.
/*
字符串的常用处理函数:
查找字符,找不到就返回NULL,找到就返回地址;
*/
#include <stdlib.h> #include <string.h> char *myStrchr(const char *s, char ch) { char *p=(char *)s; while(*p) { if(*p == ch) { return p; } p++; } return NULL;//没有找到,返回空指针; } int main() { char *p = "helloworld"; char *q; q = myStrchr(p, 'l');//字符查找,从字符串里面查找字符的位置;不同于memchr();因为memchr查找的是 0 1;没有'\0'概念; 结果为lloworld printf("%s\n",q); q = strrchr(p, 'l');//反向查找字符 结果为ld printf("%s\n",q); return 0; }
6.
/*
字符串比较
int strcmp(const char *, const char *);
*/
int main() { char *p1="hello1"; char *p2="hello0"; int rst; rst = strcmp(p1, p2); printf("%d\n",rst); rst = strncmp(p1, p2,3);//限制了比较范围; printf("%d\n",rst); return 0; }
7.
/*
字符串拷贝;
*/
int main() { char str[100]={}; char *src = "hello"; // strcpy(str,src);//目的buffer要足够大,否则会越界; // printf("%s\n",str); strncpy(str,src,sizeof(str)-1);//n=sizeof(dst)-1;才能保护目的buffer;自己需要预留结束符;拷贝的是真是的长度;主要为了限制多得时候,防止越界; printf("%s\n",str); return 0; }
8.
/*
查找字符串;
char *strstr(const char *, const char *);
*/
int main() { char *str = "helloqianfeng isniubi"; char *search = "QIANFENG"; char *p; p = strstr(str,search);//是区分大小写的; printf("%s\n",p); return 0; }
9.
/*
字符串拼接函数;
*/
int main() { char str[100]="hello"; char *p = "ios1518"; // strcat(str, p);//在str字符串后追加p字符串,要保证str有足够的空间; // printf("%s\n",str); strncat(str, p, sizeof(str)-strlen(str)-1);//拼接的个数=sizeof(str)-strlen(str)-1,需要预留一个结束符; printf("%s\n",str); return 0; }
10.
/*
字符串分割函数;
char *strtok(char *, const char *);
*/
int main() { char str[100]="hello%><(&*((world.qian>feng"; char *demi ="%><(&*."; char *p=str; // p = strtok(str, demi); // printf("%s\n",p); // p = strtok(NULL, demi); // printf("%s\n",p); // p = strtok(NULL, demi); // printf("%s\n",p); // p = strtok(NULL, demi); // printf("%s\n",p); // p = strtok(NULL, demi); // printf("%s\n",p);//分割失败,返回null,返回结束; // for(int i=0;i<40;i++) // { // printf("str[%d]=%c---ASCII=%d",i,str[i],str[i]); // printf("\n"); // } while((p=strtok(p, demi))) { printf("%s ",p); p = NULL; } return 0; }
11.
/*
提取整数
*/
int main() { char *p="-1234.89"; int i; i=atoi(p); printf("%d\n",i);//-1234 char *p2="1234.56"; double f; f=atoi(p2); printf("%lf\n",f);//1234.000000 return 0; }
12.
//翻转字符串
char *reverse(char *s) { int len = (int)strlen(s); for (int i=0; i<strlen(s)/2; i++) { char sh = s[i]; s[i] = s[len-1-i]; s[len-1-i] = sh; } return s; } int main() { char str[100]="1234"; reverse(str); printf("%s",str);//4321 return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:c语言 字符串常用命令 strtok sprintf atoi
原文地址:http://blog.csdn.net/throneman/article/details/48102445