- strcpy和strncpy复制字符串:
strcpy将第二个参数(字符串)复制到第一个参数(字符数组)中,注意,两个参数都是字符数组,而且第一个数组的长度要大于字符串的长度。
strncpy除了指定从字符串复制到字符数组的字符个数外,其他和strcpy相似
例如:
char data1[11];
char data2[] = "hello";
strcpy(data1,data2);
strncpy(data1,data2,5);
- strtok进行字符串的分割,记号化字符串
函数原型:char *strtok(char *s,char *parameter )
参数s指向将要被分隔的字符串,参数parameter为分隔字符串,当strtok()在参数s的字符串中发现到参数parameter的分隔字符时,则会将该字符改为’\0’字符,在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL.每次调用成功则返回被分隔片段的指针,目前暂且且不是很清楚其中的原理
include <iostream>
include <cstring>
using namespace std;
int main()
{
char sentence[]="This is a sentence with 7 tokens";
cout<<"The string to be tokenized is:\n"
<<sentence<<"\n\nThe tokens are:\n\n";
char *tokenPtr=strtok(sentence," ");
while(tokenPtr!=NULL) {
cout<<tokenPtr<<'\n';
tokenPtr=strtok(NULL," ");
}
cout<<"After strtok, sentence = "<<sentence<<endl;
return 0;
}
由于在分割时加入了’\0’的终止字符,所以在打印sentence时只会出现
This
打印结果:
This
is
a
sentence
with
7
tokens
After strtok, sentence = This
- strcat和strncat连接字符串
srtcat中将第二个字符串连接到第一个字符数组的尾部,所以,一定要确保第一个字符数组的长度足够大,可以容纳第二个字符串长度。第二个参数所代表的字符串的第一个字符会将第一个字符数组末尾的终止字符替换掉,所以要保证第一个数组的长度可以容纳第二个字符长度和一个终止字符。
strncat将制定个数的字符连接到第一个中。
- strcmp和strncmp比较字符串,其比较是根据ASCLL码来比较大小,例如:
int strmcp(char * data1,char * data2);如果data1为Hello,data2为Hella,那么data1大于data2。
在比较中,相等返回0,第一个大,返回1,第二个大,返回-1.
-
strlen确定字符串的长度
strlen以一个字符串作为参数,返回该字符串中的字符数,不包含终止字符