• <string.h> 是C语言标准库的头文件之一,包含了一些字符串/内存处理相关的函数(如 strcpy,memcpy 等)。
  • <cstring> 是C++语言标准库的头文件之一,基本上就是 <string.h> 的C++版本,当编写C++程序时如果需要使用 <string.h>,则应当用 <cstring> 代替,并加上 std:: 前缀(如 std::strcpy,std::memcpy 等)。
  • <string> 是C++语言标准库的头文件之一,主要包含了 std::basic_string 模板及其相关函数


即:

cstring,是兼容C的头文件.里面的函数是基于C或者说C风格的字符串处理函数或定义或宏。
string是C++标准库函数.提供在std名字空间中的C++字符串处理类string

<string>并非<cstring>的“升级版本”,他们是毫无关系的两个头文件。

链接:https://www.zhihu.com/question/274881112/answer/376939116

#include<cstdio>

#include <cstring>

//#include<string>

using namespace std;

int  main(){

   // string

    char s[50];

    scanf("%s",s);

    printf("%s\n",(strcmp(s,"abc")) ? "!=" : "==");//strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),

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

}

 

#include<cstdio>

#include<iostream>

#include<string>

using namespace std;

int  main(){

    string s;

    s="adfaf";

    string s2="adfafaf";

    if(s==s2) cout<<1;

    else cout<<0;

}