标签: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