string和string.h的区别
《string》
《string》是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但《string》又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在《string》的文件中除了定义自己的string类之外,还加了一个#include《string.h》一句包含了C版本的字符串操作。
《string.h》
《string.h》是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。
求
和
的区别
1、string.h是C标准库下的文件,C++向兼容C,所以包含了该文件,这个文件应该是原封不动的与C标准库下一致的。类似这样的文件还有math.h,setjmp.h,stdlib.h,stddef.h等等C标准库下的头文件;这个头文件是处理纯char的原生数组的。例如char str。
2、而string就与string.h有本质差别了。它是STL封装的类string,同样用于字符串操作,其中用到了很多的操作符重载等方法,实现方法和C标准库中的string.h有很大差别。
这里string是一个类,例如string myStr;
C++里面头文件
的用处是什么
string.h包含一些字符串处理的函数,打开你的编译器,里面应该有个include(vc++6.0里有,其他的应该也有)的文件,里面就是所有的头文件
string.h的函数用法
下面为string.h文件中函数的详细用法,附加实例: 函数名:strcpy
功 能: 拷贝一个字符串到另一个
用 法: char *strcpy(char *destin, char *source);
程序例: #include《stdio.h》#include《string.h》int main(void){char string;char*str1=abcdefghi;strcpy(string,str1);printf(%s\n,string);return 0;} 函数名:strncpy
原型:char *strncpy(char *dest, char *src,size_tn);
功能:将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针。 函数名:strcat 功 能: 字符串拼接函数
用 法: char *strcat(char *destin, char *source);
程序例: #include《string.h》 #include《stdio.h》void main() { char destination; char*blank=,*c=C++,*Borland=Borland; strcpy(destination,Borland); strcat(destination,blank); strcat(destination,c); printf(%s\n,destination); } 函数名:strchr
功 能: 在一个串中查找给定字符的第一个匹配之处
用 法: char *strchr(char *str, char c);
程序例: #include《string.h》#include《stdio.h》int main(void){char string;char*ptr,c=’r’;strcpy(string,Thisisastring);ptr=strchr(string,c);if(ptr)printf(Thecharacter%cisatposition:%d\n,c,ptr-string);elseprintf(Thecharacterwasnotfound\n);return 0;} 函数名:strcmp
功 能: 串比较
用 法: intstrcmp(char *str1, char *str2);
看Asic码,str1》str2,返回值 》 0;两串相等,返回0
程序例: #include《string.h》#include《stdio.h》int main(void){char*buf1=aaa,*buf2=bbb,*buf3=ccc;int ptr;ptr=strcmp(buf2,buf1);if(ptr》0)printf(buffer2isgreaterthanbuffer1\n);elseprintf(buffer2islessthanbuffer1\n);ptr=strcmp(buf2,buf3);if(ptr》0)printf(buffer2isgreaterthanbuffer3\n);elseprintf(buffer2islessthanbuffer3\n);return 0;} 函数名:strnicmp
功 能: 将一个串中的一部分与另一个串比较, 不管大小写
用 法: intstrnicmp(char *str1, char *str2, unsigned maxlen);
程序例: #include《string.h》#include《stdio.h》int main(void){char*buf1=BBB,*buf2=bbb;int ptr;ptr=strnicmp(buf2,buf1);if(ptr》0)printf(buffer2isgreaterthanbuffer1\n);if(ptr《0)printf(buffer2islessthanbuffer1\n);if(ptr==0)printf(buffer2equalsbuffer1\n);return 0;} 函数名:strlen
功能: strlen函数求的是字符串的长度,它求得方法是从字符串的首地址开始到遇到第一个’\0’停止计数,如果你只定义没有给它赋初值,这个结果是不定的,它会从字符串首地址一直记下去,直到遇到’\0’才会停止。
原型:size_tstrlen(const char *s); #include《stdio.h》#include《string.h》int main(){int i=0;char*he=Hello,world;i=strlen(he);printf(字符串长度为%d\n,i);return 0;}运行结果:
字符串长度为11 函数名:strcspn
功 能: 在串中查找第一个给定字符集内容的段
用 法: intstrcspn(char *str1, char *str2);
程序例: #include《stdio.h》#include《string.h》{int main(void)char*string1=1234567890;char*string2=747DC8;int length;length=strcspn(string1,string2);printf(Characterwherestringsintersectisatposition%d\n,length);return 0;} 函数名:strdup
功 能: 将串拷贝到新建的位置处
用 法: char *strdup(char *str);
程序例: #include《stdio.h》#include《string.h》#include《alloc.h》int main(void){char*dup_str,*string=abcde;dup_str=strdup(string);printf(%s\n,dup_str);free(dup_str);return 0;} 函数名:stricmp
功 能: 以大小写不敏感方式比较两个串
用 法: intstricmp(char *str1, char *str2);
程序例: #include《string.h》#include《stdio.h》intmain(void){char*buf1=BBB,*buf2=bbb;intptr;ptr=stricmp(buf2,buf1);if(ptr》0)printf(buffer2isgreaterthanbuffer1\n);if(ptr《0)printf(buffer2islessthanbuffer1\n);if(ptr==0)printf(buffer2equalsbuffer1\n);return0;} 函数名:strerror
功 能: 返回指向错误信息字符串的指针
用 法: char *strerror(int errnum);
程序例: #include《stdio.h》#include《errno.h》intmain(void){char*buffer;buffer=strerror(errno);printf(Error:%s\n,buffer);return0;} 函数名:strcmpi
功 能: 将一个串与另一个比较, 不管大小写
用 法: intstrcmpi(char *str1, char *str2);
程序例: #include《string.h》#include《stdio.h》int main(void){char*buf1=BBB,*buf2=bbb;int ptr;ptr=strcmpi(buf2,buf1);if(ptr》0)printf(buffer2 is greater than buffer1\n);if(ptr《0)printf(buffer2islessthanbuffer1\n);if(ptr==0)printf(buffer2equalsbuffer1\n);return0;} 函数名:strncmp
功 能: 串比较
用 法: intstrncmp(char *str1, char *str2, int maxlen);
程序例: #include《string.h》#include《stdio.h》int main(void){char *buf1=aaabbb,*buf2=bbbccc,*buf3=ccc;int ptr;ptr=strncmp(buf2,buf1,3);if(ptr》0)printf(buffer2 is greater than buffer1\n);elseprintf(buffer2 is less than buffer1\n);ptr=strncmp(buf2,buf3,3);if(ptr》0)printf(buffer2isgreaterthanbuffer3\n);elseprintf(buffer2islessthanbuffer3\n);return0;} 函数名:strncpy
功 能: 串拷贝
用 法: char *strncpy(char *destin, char *source, int maxlen);
程序例: #include《stdio.h》#include《string.h》int main(void){char string;char*str1=abcdefghi;strncpy(string,str1,3);string=’\0’;printf(%s\n,string);return 0;} 函数名:strnicmp
功 能: 不注重大小写地比较两个串
用 法: int strnicmp(char *str1, char *str2, unsigned maxlen);
程序例: #include《string.h》#include《stdio.h》intmain(void){char*buf1=BBBccc,*buf2=bbbccc;intptr;ptr=strnicmp(buf2,buf1,3);if(ptr》0)printf(buffer2isgreaterthanbuffer1\n);if(ptr《0)printf(buffer2islessthanbuffer1\n);if(ptr==0)printf(buffer2equalsbuffer1\n);return0;} 函数名:strnset
功 能: 将一个字符串前n个字符都设为指定字符
用 法: char *strnset(char *str, char ch, unsigned n);
程序例: #include《stdio.h》#include《string.h》intmain(void){char*string=abcdefghijklmnopqrstuvwxyz;charletter=’x’;printf(stringbeforestrnset:%s\n,string);strnset(string,letter,13);printf(stringafterstrnset:%s\n,string);return0;} 函数名:strpbrk
功 能: 在串中查找给定字符集中的字符
用 法: char *strpbrk(char *str1, char *str2);
程序例: #include《stdio.h》#include《string.h》intmain(void){char*string1=abcdefghijklmnopqrstuvwxyz;char*string2=onm;char*ptr;ptr=strpbrk(string1,string2);if(ptr)printf(strpbrkfoundfirstcharacter:%c\n,*ptr);elseprintf(strpbrkdidn’tfindcharacterinset\n);return0;} 函数名:strrchr
功 能: 在串中查找指定字符的最后一个出现
用 法: char *strrchr(char *str, char c);
程序例: #include《string.h》#include《stdio.h》intmain(void){charstring;char*ptr,c=’r’;strcpy(string,Thisisastring);ptr=strrchr(string,c);if(ptr)printf(Thecharacter%cisatposition:%d\n,c,ptr-string);elseprintf(Thecharacterwasnotfound\n);return0;} 函数名:strrev
功 能: 串倒转
用 法: char *strrev(char *str);
程序例: #include《string.h》#include《stdio.h》intmain(void){char*forward=string;printf(Beforestrrev():%s\n,forward);strrev(forward);printf(Afterstrrev():%s\n,forward);return0;} 函数名:strspn
功 能:返回字符串中第一个不在指定字符串中出现的字符下标
用 法: int strspn(char *str1, char *str2);
程序例: #include《stdio.h》#include《string.h》#include《alloc.h》intmain(void){char*string1=1234567890;char*string2=123DC8;intlength;length=strspn(string1,string2);printf(Characterwherestringsdifferisatposition%d\n,length);return0;} 函数名:strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
程序例: #include《stdio.h》#include《string.h》intmain(void){char*str1=BorlandInternational,*str2=nation,*ptr;ptr=strstr(str1,str2);printf(Thesubstringis:%s\n,ptr);return0;} 函数名: strtod
功 能: 将字符串转换为double型值
用 法: double strtod(char *str, char **endptr);
程序例: #include《stdio.h》#include《stdlib.h》intmain(void){charinput,*endptr;doublevalue;printf(Enterafloatingpointnumber:);gets(input);value=strtod(input,&endptr);printf(Thestringis%sthenumberis%lf\n,input,value);return0;} 函数名:strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
程序例: #include《string.h》#include《stdio.h》intmain(void){charinput=abc,d;char*p;/*strtokplacesaNULLterminatorinfrontofthetoken,iffound*/p=strtok(input,,);if(p)printf(%s\n,p);/*AsecondcalltostrtokusingaNULLasthefirstparameterreturnsapointertothecharacterfollowingthetoken*/p=strtok(NULL,,);if(p)printf(%s\n,p);return0;} 函数名:strtol
功 能: 将串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
程序例: #include《stdlib.h》#include《stdio.h》intmain(void){char*string=87654321,*endptr;longlnumber;/*strtolconvertsstringtolonginteger*/lnumber=strtol(string,&endptr,10);printf(string=%slong=%ld\n,string,lnumber);return0;} 函数名:strupr
功 能: 将串中的小写字母转换为大写字母
用 法: char *strupr(char *str);
程序例: #include《stdio.h》#include《string.h》intmain(void){charstring=abcdefghijklmnopqrstuvwxyz,*ptr;//定义为数组才能修改/*convertsstringtouppercasecharacters*/ptr=strupr(string);printf(%s\n,ptr);return0;} 函数名: swab
功 能: 交换字节
用 法: void swab (char *from, char *to, int nbytes);
程序例: #include《stdlib.h》#include《stdio.h》#include《string.h》charsource=rFnakoBlrnad;chartarget;intmain(void){swab(source,target,strlen(source));printf(Thisistarget:%s\n,target);return0;}原型:extern char *strstr(char *haystack, char *needle);
*所在头文件:#include 《string.h》
*功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
*说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
C语言 #include “string.h“ 的 意思
#include“string.h”是在程序编译之前要处理的内容,与字符串的调用有关
包括常用函数如下:
strlen求字符串长度
strcmp比较2个字符串是否一样
strcat字符串连接操作
strcpy字符串拷贝操作
strncat字符串连接操作(前n个字符)
strncpy字符串拷贝操作(前n个字符)
strchr查询字串
strstr 查询子串
举例说明:
例如strcat()字符串链接函数;strcpy()字符串复制函数等等。
以strcpy函数为例实现它的调用:
#include 《stdio.h》
#include“string.h“
int main()
{
char a=“asd“,b=“aaa“;
strcpy(a,b);
printf(“%s\n“,a);
}
拓展资料
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
c语言 #include
啥意思
string.h是个头文件,里面写的是关于字符串操作的一些基本函数。当程序中涉及对字符串的操作时,会用到这个头文件里面的函数。所以要把它include(包含)进来。
string.h里包含哪几个函数
string.h头文件里常用的函数有:
strlen求字符串长度。
strcmp比较2个字符串是否一样。
strcat字符串连接操作。
strcpy字符串拷贝操作。
strncat字符串连接操作(前n个字符)。
strncpy字符串拷贝操作(前n个字符)。
strchr查询字串。
strstr
查询子串。
string.h是C语言里面关于字符数组的函数定义的头文件,更详细的可以到include文件夹里面查看该文件。
string.h头文件中有什么函数
string.h头文件中的函数:
1、#include 《algorithm》 //STL 通用算法
2、#include 《bitset》 //STL 位集容器
3、#include 《complex》 //复数类
4、#include 《deque》 //STL双端队列容器
5、#include 《exception》 //异常处理类
6、#include 《list》 //STL 线性列表容器
7、#include 《map》 //STL 映射容器
8、#include 《ios》 //基本输入/输出支持
9、#include 《iosfwd》 //输入/输出系统使用的前置声明
10、#include 《ios》 //基本输入/输出支持
C语言标准库中一个常用的头文件,在使用到字符数组时需要使用。string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等。
扩展资料
一般在C++的库中,对于一个旧的,也就是带“.h”扩展名的库文件(比如iostream.h),在新标准后的标准库中都有一个不带“.h”扩展名的与之相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。
但唯独string特别。问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件,包含一些常用的C字符串处理函数。这个头文件跟C++的string类半点关系也没有,所以 《string》并非 《string.h》的“升级版本”,
参考资料来源:百度百科-string.h
string.h
就是在程序中加入#include “string.h“就可以使用这个头文件里包含的库函数,而这些函数都是处理字符串的.
下面是从网上找的,呵呵
#include“string,h“这是C语言/C++中的字符串处理函数的头文件
下面是大多数的头文件:可以参考.我也是从别的地方找的.哈哈.见笑啦!
/******************************/
C、传统 C++
#include 《assert.h》 //设定插入点
#include 《ctype.h》 //字符处理
#include 《errno.h》 //定义错误码
#include 《float.h》 //浮点数处理
#include 《fstream.h》 //文件输入/输出
#include 《iomanip.h》 //参数化输入/输出
#include 《iostream.h》 //数据流输入/输出
#include 《limits.h》 //定义各种数据类型最值常量
#include 《locale.h》 //定义本地化函数
#include 《math.h》 //定义数学函数
#include 《stdio.h》 //定义输入/输出函数
#include 《stdlib.h》 //定义杂项函数及内存分配函数
#include 《string.h》 //字符串处理
#include 《strstrea.h》 //基于数组的输入/输出
#include 《time.h》 //定义关于时间的函数
#include 《wchar.h》 //宽字符处理及输入/输出
#include 《wctype.h》 //宽字符分类
/******************************/
标准 C++ (同上的不再注释)
#include 《algorithm》 //STL 通用算法
#include 《bitset》 //STL 位集容器
#include 《cctype》
#include 《cerrno》
#include 《clocale》
#include 《cmath》
#include 《complex》 //复数类
#include 《cstdio》
#include 《cstdlib》
#include 《cstring》
#include 《ctime》
#include 《deque》 //STL 双端队列容器
#include 《exception》 //异常处理类
#include 《fstream》
#include 《functional》 //STL 定义运算函数(代替运算符)
#include 《limits》
#include 《list》 //STL 线性列表容器
#include 《map》 //STL 映射容器
#include 《iomanip》
#include 《ios》 //基本输入/输出支持
#include 《iosfwd》 //输入/输出系统使用的前置声明
#include 《iostream》
#include 《istream》 //基本输入流
#include 《ostream》 //基本输出流
#include 《queue》 //STL 队列容器
#include 《set》 //STL 集合容器
#include 《sstream》 //基于字符串的流
#include 《stack》 //STL 堆栈容器
#include 《stdexcept》 //标准异常类
#include 《streambuf》 //底层输入/输出支持
#include 《string》 //字符串类
#include 《utility》 //STL 通用模板类
#include 《vector》 //STL 动态数组容器
#include 《cwchar》
#include 《cwctype》
using namespace std;
/******************************/
C99 增加
#include 《complex.h》 //复数处理
#include 《fenv.h》 //浮点环境
#include 《inttypes.h》 //整数格式转换
#include 《stdbool.h》 //布尔环境
#include 《stdint.h》 //整型环境
#include 《tgmath.h》 //通用类型数学宏
/******************************/
如果有什么疑问,可以通过搜索引擎找找再问,毕竟那样可能会有很好的答案.
/******************************/