字符数组与字符串
2021/9/11 23:07:26
本文主要是介绍字符数组与字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写一个字符串拷贝函数,等待拷贝字符数组长度不能小于被拷贝字符串长度,否则将越界,程序崩溃。
//将字符串src复制到des中 a = b; void Mystrcpy(char des[], char src[]) { int i; for (i = 0; src[i] != '\0'; i++) { des[i] = src[i]; } des[i] = '\0'; } //n:最多拷贝n个字符,不算'\0' void Mystrcpy_s(char des[], int n, char src[]) { int i; for (i = 0; i < n && src[i] != '\0'; i++) { des[i] = src[i]; } des[i] = '\0'; } int main() { int arr[10] = {1,2,3,4,5}; int brr[10]; //brr = arr;//error,数组不能整体赋值,只有初始化时可以整体赋值 char str1[100] = "abcdefghijkl"; char str2[100] = "xyz"; char str3[100]; char str4[100]; char str5[4]; //将str1的内容复制到str3 "abcd" //str3 = str1;//error, //str1[0] = str2[0];//char = char; Mystrcpy(str3,str1); strcpy(str4,str1); //将str1复制到str5中 //Mystrcpy(str5,str1);//崩溃,不安全的原因 //strcpy_s(str5, 4, str1);//安全版本的函数,建议函数,有的编译器没有这个函数 Mystrcpy_s(str5,4-1,str1); printf("%s\n",str3); printf("%s\n", str4); printf("str5=%s\n", str5); return 0; }
使用库函数
int main() { char str1[] = "abcde"; char str2[10]; char str3[10]; //使用库函数将str1的内容拷贝到str2和str3 strcpy(str2,str1); strcpy(str3,str1); printf("%s,%s\n",str2,str3); char str4[10]; //使用库函数将"hello"拷贝到str4 strcpy(str4,"hello"); printf("%s\n",str4); char str5[10]; //使用库函数将"hello world"拷贝到str5 strcpy(str5, "hello world");//越界,12个字符串在10个数组格里存不下 printf("str5=%s\n", str5); return 0; }
求字符数组长度和字符串长度
int main() { char str1[100] = "abcde"; char str2[] = "abcde"; char str3[] = "abcd\0e"; char str4[] = "abcd\0e\n"; printf("%d,%d\n",sizeof(str1),strlen(str1));//100,5 printf("%d,%d\n", sizeof(str2), strlen(str2));//6,5 printf("%d,%d\n", sizeof(str3), strlen(str3));//7,4 printf("%d,%d\n", sizeof(str4), strlen(str4));//8,4 return 0; }
区分字符数组与字符串
字符数组 ,char arr[10]; 利用char定义的数组。
字符串:用 ""包括的字符序列,字符串的末尾有一个隐含的’\0’
字符数组是否为字符串,就看字符数组是否有’\0’ ,有’\0’就是字符串,否则不是。
char str1[10] = { 'a','b','c','d','e','f','g','h','i','j' };//字符数组,不是字符串 char str2[10] = { 'a','b','c','d','e','f','g','h'};//字符数组,是字符串 char str3[] = { 'a','b','c','d','e','f','g','h' };//字符数组,不是字符串 char str4[10] = "abcde";//字符数组,是字符串 char str5[] = "abcde";//字符数组,是字符串 const char* str6 = "abcde";//不是字符数组,是字符串 char str7[] = { 'a','b','c','d','\0','e' };//是字符数组,是字符串 printf("%s\n",str1); str2[1] = 0; printf("%s\n",str2);//考题
这篇关于字符数组与字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南