gets函数
作用是从终端输入一个字符串到字符数组,并且得到一个函数值。
// crt_gets.c
// compile with: /WX /W3
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets( line ); // C4996
// Danger: No way to limit input to 20 chars.
// Consider using gets_s instead.
printf( "The line entered was: %s\n", line );
}
C++puts
作用是从终端输入一个字符串到字符数组,并且得到一个函数值。
// crt_gets.c
// compile with: /WX /W3
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets( line ); // C4996
// Danger: No way to limit input to 20 chars.
// Consider using gets_s instead.
puts(line);
}
C++strcat 函数
作用是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面,结果放在字符数组1中。
函数原型 char * strcat (char destination[], const char source[]);
返回值是第一个字符串的首地址
#include<string.h>
#include<stdio.h>
#pragma warning (disable:4996)
int main()
{
char str1[20] = "cv";
char str2[] = "potatao";
strcat(str1, str2);
puts(str1);
}
C++需要注意的是str1必须足够存放str2的大小。
strcpy函数(strncpy按字符拷贝字符串)
函数原型 char * strcpy( char destination[], const char source[]);
将参数2的字符串拷贝到第一个参数去,第二个参数的结束符号,也会被拷贝到第一个参数中去
#include<string.h>
#include<stdio.h>
#pragma warning (disable:4996)
int main()
{
char des[50] = {0};
char src[] = "cctry.com";
strcpy(des, src);
cout << "des = " << des << endl;
}
C++我的例子都写一块了,不方便看,借用一下VC驿站前辈的代码!
strncpy需要注意的
strncpy()不会向dest追加结束标记'\0',因此如果src的前n个字节不含'\0'字符,则结果不会以'\0'字符结束,可能导致错误。如果src的长度小于n个字节,则以'\0'填充dest直到复制完n个字节,因此若n的值过大,则其将其余数据全置为'\0'的行为会导致效率低下
#include <stdio.h>
#include <string.h>
int main(){
char str1[10] =""; //定义空数组str1
char str2[10] = "kgtj";//定义数组str2
strncpy(str1, str2, 1);
printf("%s\n", str1);
return 0;
}
C++strcmp函数(strncmp函数)
函数原型int strcmp (const char str1[], const char str2[]);
比较参数1和参数2,通过比较每个字母的ascll的值 来确定大小如果ret>0 参数1>参数2
如果ret<0 参数1<参数2
如果ret=0 参数1=参数2
比如第一个参数的第一个字符是b第二个参数的字符是a这时候返回1 如果第一个参数的第一个字符和第二个参数的第二个字符相等 则继续比较第一个参数的第二个字符与第二个参数的第二个字符 第一个参数的第一个字符是a第二个参数的字符是b` 这时候返回-1
#include <stdio.h>
#include <string.h>
int main(){
char des[50] = "hello";
char src[] = "cctry.com";
int iret = strcmp(des, src);
cout << "iret = " << iret << endl;
}
C++依旧是VC驿站!!
strncmp 可指定比较长度,即比较给定两个字符串前n个字符的大小情况
strlen函数
函数原型size_t strlen (const char str[]);
求得参数字符串的长度,通过返回值返回。
char des[50] = "hello";
int len = strlen(des);
cout << "len = " << len << endl;
C++获取字符串的长度 没有算结束符 所以是5个字符
如果要求字符串占多少内存空间可以用sizeof(des) 因为字符是一个字节,所以不需要除类型所占字节数
strlen和sizeof的区别
strlen结束读取字符串结束标志之前的长度 不包括\0
sizeof 其实就是一个运算符,主要用来计算所占空间字节的大小。包括\0
char str[50]="i love c";
strlen(str)--->8
sizeof(str)--->50