程序竞赛中常用的C字符串函数

本文介绍了C语言中常用的字符串处理函数,包括字符串复制、连接、比较、长度测量及字符串到数值的转换方法。此外还提供了字符检查函数的用法示例。

程序竞赛中常用的C语言字符串处理函数

前言:

最好是使用C++的std::string,但是有些情况下,比如字符串比较等,反而是C风格的字符串比较灵活。以下列举常用的函数。

字符串操作

  1. char* strcpy( char* dest, const char* src )src的内容复制到dest中,返回dest。如果dest字符长度不够,函数无法处理这种情况,是不安全的。

  2. char *strcat( char *dest, const char *src )src追加到dest后面,返回dest

    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
       char s[20] = "hello world !";
       char s1[20] = "Goodbye";
       strcat(s, s1);
       cout << s << endl;
       cout << strlen(s) << endl;
       return 0;
    }
  3. strlen(const char* s)测试s的长度。长度是实际有效的。

    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
       char s[20] = "hello world !";
       cout << strlen(s) << endl;
       return 0;
    }
    // 输出 13
  4. strcmp(const char* s1, const char* s2)比较s1s2的字典序,如果s1<s2返回负数,s1==s2返回0,s1>s2返回正数。

字符串转换操作

  1. double strtod (const char* str, char** endptr)转换字符串中的浮点数据,并返回。

    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
       char s[30] = "123.123 456.456";
       char* pEnd;
       double d = strtod(s, &pEnd);
       cout << d << endl;
       cout << s << endl;
       d = strtod(pEnd, nullptr);
       cout << d << endl;
       cout << s << endl;
       return 0;
    }
    /*
    123.123
    123.123 456.456
    456.456
    123.123 456.456
    */

    注意,转换的时候,不要有其他的杂项字符,否则会转化成0;

  2. double atof (const char* str)str转换成浮点型返回

    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
       char s[]="3.14";
       cout<<atof(s)<<endl;
       return 0;
    }

    不要有杂项字符!

  3. int atoi(const char* str)str转化成整型

字符检查:

  1. isalpha() 检查是否为字母字符
  2. isupper() 检查是否为大写字母字符
  3. islower() 检查是否为小写字母字符
  4. isdigit() 检查是否为数字
  5. isxdigit() 检查是否为十六进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值