zoukankan      html  css  js  c++  java
  • C++C字符串

    C字符串

    C字符串是一个字符数组,以''(空终结符)结尾。可以使用C++库中的C字符串函数操作C字符串。

    //初始化C字符串
    char city[] = "Beijing";
    //求数组长度
    cout << sizeof(city)/sizeof(city[0]);
    //结果为:8

    结果解释:Beijing是7个字符,外加一个空终结符''

    C字符串和一般的字符数组的区别就在于:C字符串的最后一个字符一定是'',而一般的字符数组可以以任何字符结尾。看下面的例子

    //是一个C字符串,有8个字符
    char city1[] = "Beijing";
    
    //不是C字符串,是一个普通的字符数组,有7个字符
    char city2[] = {'B', 'e', 'i', 'j', 'i', 'n', 'g'}

    在键盘输入C字符串和输出C字符串

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        char city[100];
        cout << "请输入城市:";
        cin >> city;
        cout << "你输入的城市是:" << city << endl;
        return 0;
    }

    运行结果:

     如果输入的城市里面有空格(New York),可以使用cin.getline()函数

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        char city[100];
        cout << "请输入城市:";
        cin.getline(city,100);
        cout << "你输入的城市是:" << city << endl;
        return 0;
    }

    运行结果:

     C字符串函数

    注:1) 下面的函数都定义在<cstring>头文件下(除转换函数atoi, atof, atol定义在<cstdlib>头文件下)

      2)size_t是一个C++类型,一般与unsigned int相同

    函数 描述
    size_t strlen(char s[]) 返回字符串长度,即在空终结符之前的个数
    strcpy(char s1[], const char s2[]) 把字符串s2复制到s1中
    strncpy(char s1[], const char s2[], size_t n) 把字符串s2的前n个字符复制到s1中
    strcat(char s1[], const char s2[]) 把字符串s2拼接到s1中
    strncat(char s1[], const char s2[], size_t n) 把字符串s2的前n个字符拼接到s1中
    int strcmp(char s1[], const char s2[]) 判断s1小于、等于或大于s2,分别返回小于0、等于0、大于0的数
    int strncmp(char s1[], const char s2[], size_t n) 只比较s1与s2的前n个字符
    int atoi(char s[]) 返回字符串对应的int型值
    double atof(char s[]) 返回字符串对应的double型值
    long atol(char s[]) 返回字符串对应的long型值
    void itoa(int value, char s[], int radix) 基于一个指定的集数,获得字符串的整数值(可用于进制转换)

    主要说明一下后面的几个转换函数:

    atoi

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    {
        char s1[] = "11";
        char s2[] = "23";
        cout << s1 << " + " << s2 << " = " << atoi(s1)+atoi(s2) << endl;
        return 0;
    }

    atof, atol同理

    itoa

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    {
        char s1[10];
        char s2[10];
        itoa(100, s1, 16);
        itoa(10, s2, 2);
    
        cout << "100的16进制是:" << s1 << endl;
        cout << "10的2进制是:" << s2 << endl;
        return 0;
    }

    运行结果:

  • 相关阅读:
    Unity UGUI基础之Text
    Unity UGUI之Canvas&EventSystem
    ROS(indigo)国外开源示例包括多机器人控制等基于V-Rep和Gazebo的仿真
    lk中内联调用的dsb()
    svn 回退/更新/取消至某个版本命令详解
    ubuntu16.04中可以用于教学的有趣的应用
    高级UI晋升之布局ViewGroup(四)
    高级UI晋升之常用View(三)下篇
    高级UI晋升之常用View(三)中篇
    高级UI晋升之常用View(三)上篇
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12655693.html
Copyright © 2011-2022 走看看