字符串相关函数

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

字符串相关函数

C语言

字符串

2024-11-13 23:56:29

C语言

字符串函数仿写

2024-11-14 9:40:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

Powered by atecplugins.com