C语言一些常用字符串操作

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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 18:28:50

C语言一些常用字符串操作的相关文章

C语言的常用字符串操作函数(一)

一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这样丰富而实用,在此记录,已备后用. No.1 strlen():字符串长度计算函数 应用实例: 1 #include<stdio.h> 2 #include<string.h> 3 4 char TextBuff[] = "Hello_My_Friend!"; 5

mysql常用字符串操作函数大全

测试表 CREATE TABLE `string_test` ( `id` int(11) NOT NULL auto_increment COMMENT '用户ID', `name` varchar(50) NOT NULL default '' COMMENT '名称', `job` varchar(23) NOT NULL COMMENT '工作', `sex` tinyint(1) NOT NULL default '1' COMMENT '性别', `hobby` varchar(10

mysql常用字符串操作函数大全,以及实例

今天在论坛中看到一个关于mysql的问题,问题如下 good_id     cat_id12654         665,56912655         601,4722 goods_id是商品idcat_id是分类id当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了. 如果用like做的话,肯定会有问题的,我的开始的想法是,把cat_id里面的字符

JS 常用字符串操作

Js字符串操作函数大全 /*******************************************                        字符串函数扩充                                 *******************************************/ /*===========================================//去除左边的空格===============================

Python 常用字符串操作

Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符串 #strcpy(sStr1,sStr) sStr= 'strcpy' sStr = sStr sStr= 'strcpy' print sStr 连接字符串 #strcat(sStr1,sStr) sStr= 'strcat' sStr = 'append' sStr+= sStr print

梓益C语言学习笔记之常用字符串操作(sscanf &amp; strtok)

一.sscanf int sscanf(const char *buf,const char *format, -);  \\从buf指定的内存区域中读入信息 例: int a, b, c; sscanf("2013:10:1", "%d:%d:%d", &a, &b, &c); printf("%d  %d  %d\n",a,b,c); sscanf()的正则表达式是从头向后顺序查找匹配字符,找不到就返回错误,如下面的几

C语言常用字符串操作函数总结

函数名: strcpy 功 能: 将参数src字符串拷贝至参数dest所指的地址 用 法: char *strcpy(char *dest, const char *src); 返回值: 返回参数dest的字符串起始地址 说 明: 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况,在编写程序时需特别留意,或者用strncpy()来取代: 程序例: #include <stdio.h> #include <string.h> int main(void) { cha

C语言基础 第九章 常用字符串操作函数

sscanf():可以将一个长的字符串按照需求分割成想要的格式 实例: #include<stdio.h> #include<string.h> int main() { //1. 取指定长度的字符串 char str[100]; sscanf("12345","%4s",str); printf("%s\n",str);//1234 //2. 格式化时间 int year, month, day, hour, minut

初识python: 常用字符串操作

直接上代码示例: #!/user/bin env python # author:Simple-Sir # time:20180914 # 字符串常用操作 name = 'lzh lyh' print('capitalize返回值:',name.capitalize()) # 首字母大写 print('count返回值:',name.count('l')) #指定字母数量 print('center返回值:',name.center(50,'-')) #共打印50个字符,不够的用"-"