C语言中字符串和字符数组是一个有点容易混淆的概念,它们之间有着微妙的关系。很多人在面试时会考察C语言字符串和字符数组的相关知识。以下是:
1、字符串和字符数组的区别
字符串是一个字符序列,它是由一组字符组成的字符串常量,以null字符('\0')结尾,它的长度是可变的,可以通过strlen()函数来获取字符串的长度。而字符数组是一个固定长度的数组,它由一组字符组成,但它不以null字符结尾,它的长度是固定的,不能通过strlen()函数来获取字符数组的长度。
2、字符串和字符数组的转换
字符串可以通过strcpy()函数转换为字符数组,而字符数组可以通过strcat()函数转换为字符串。
// 将字符串转换为字符数组 char str[100]; char arr[100]; strcpy(arr, str); // 将字符数组转换为字符串 char str[100]; char arr[100]; strcat(str, arr);
3、字符串比较
字符串比较可以使用strcmp()函数来实现,该函数比较两个字符串,如果相等,则返回0,如果不相等,则返回一个非零值。
// 比较两个字符串 char str1[100]; char str2[100]; int result = strcmp(str1, str2); if (result == 0) { printf("str1 == str2\n"); } else { printf("str1 != str2\n"); }
4、字符串拼接
字符串拼接可以使用strcat()函数来实现,该函数将src字符串拼接到dest字符串的末尾,并将结果保存到dest字符串中。
// 拼接两个字符串 char dest[100]; char src[100]; strcat(dest, src);
5、字符串查找
字符串查找可以使用strstr()函数来实现,该函数在haystack字符串中查找needle字符串,如果找到,则返回needle字符串在haystack字符串中的位置,如果没有找到,则返回NULL。
// 查找字符串 char haystack[100]; char needle[100]; char *p = strstr(haystack, needle); if (p != NULL) { printf("Found %s in %s\n", needle, haystack); } else { printf("Not found %s in %s\n", needle, haystack); }
6、字符串替换
字符串替换可以使用strreplace()函数来实现,该函数在str字符串中查找old字符串,并将其替换为new字符串,如果替换成功,则返回替换后的字符串,如果替换失败,则返回NULL。
// 替换字符串 char str[100]; char old[100]; char new[100]; char *p = strreplace(str, old, new); if (p != NULL) { printf("Replace success: %s\n", p); } else { printf("Replace failed\n"); }
以上就是,希望能够帮助大家更好地备考面试。