返回顶部

C/C++ 字符串操作

 

参考:https://www.cnblogs.com/LyShark/p/12869454.html

 1. C字符串操作

strtok 实现字符串切割: 将字符串根据分隔符进行切割分片.返回分隔符之前的字符串,

strlen 获取字符串长度,包含末尾的'\0'

strcpy 字符串拷贝

strcat 字符串连接: 将由src指向的空终止字节串的副本追加到由dest指向的以空字节终止的字节串的末尾

strcmp 字符串对比  

strchr 字符串截取,返回分割字符之后的字符串,包括分隔符

 

1.1. strtok 

建议使用strtok_s  strtok和strtok_s都会改变原始字符串,但strtok会把分隔符之后的字符串保存到第三个参数中。

strtok原型:

_ACRTIMP char* __cdecl strtok(  _Inout_opt_z_ char*  _String,    _In_z_ char const* _Delimiter  );

strtok_s原型:

 _ACRTIMP char*  __cdecl strtok_s(
        _Inout_opt_z_                 char*       _String,
        _In_z_                        char const* _Delimiter,
        _Inout_ _Deref_prepost_opt_z_ char**      _Context
        );

第一个参数是要切割的字符串,会被改变为分隔符之前的字符串,不包括分隔符;

第二个参数是分隔符;

strtok_s第三个参数是分隔符之后的字符串,不包括分隔符

    char srcstr[] = { "hello,welcom,to,my world" };
    char* ptr1;
    strtok_s(srcstr, ",", &ptr1);////strtok = hello,ptr = welcom,to,my world
    //strtok(srcstr, ",");//strtok = hello

 1.2. strcmp

还有strncmp(),表示比较前几个字符

strcmp原型:

int __cdecl strcmp(
    _In_z_ char const* _Str1,
    _In_z_ char const* _Str2
    );

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止,

若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。

 2. C++字符串操作

cout格式化输出:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char* argv[])
{
    cout << hex << 100 << endl;             // 十六进制输出
    cout << dec << 100 << endl;             // 十进制输出
    cout << oct << 100 << endl;             // 八进制输出
    cout << fixed << 10.053 << endl;        // 单浮点数输出
    cout << scientific << 10.053 << endl;   // 科学计数法

    cout << setw(10) << "hello" << setw(10) << "lyshark" << endl;  // 默认两个单词之间空格

    cout << setfill('-') << setw(10) << "hello" << endl; // 指定域宽,输出字符串,空白处以'-'填充

    //之前的格式会应用到后面,如果需要新的格式输出需要指定
    for (int x = 0; x < 3; x++)
    {
        cout << setfill(' ') << setw(10) << left << "hello" ; // 自动(left/right)对齐,不足补空格
     
    }

    cout << endl;
    system("pause");
    return 0;
}

 

posted @ 2020-10-09 14:13  Zoya23  阅读(71)  评论(0编辑  收藏  举报