用C语言编写完整代码,其中包含字符串的基本算法:串复制,串连接,求串长
时间: 2024-09-27 22:09:05 浏览: 34
当然可以。以下是C语言中关于字符串的一些基本操作的示例代码:
1. **串复制** (strcpy):
```c
#include <stdio.h>
#include <string.h>
void copy_string(char* dest, const char* src) {
if (dest != NULL && src != NULL) {
// 使用 strncpy 防止溢出,因为 strcpy 没有长度检查
strncpy(dest, src, strlen(src) + 1); // 结尾添加空字符'\0'
dest[strlen(src)] = '\0'; // 确保目标字符串结束
} else {
printf("Invalid input!\n");
}
}
int main() {
char str1[50], str2[50];
printf("Enter a string to copy: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // 清除换行符
copy_string(str2, str1);
printf("Copied string: %s\n", str2);
return 0;
}
```
2. **串连接** (strcat):
```c
#include <stdio.h>
#include <string.h>
void concat_strings(char* dest, const char* src) {
if (dest != NULL && src != NULL) {
size_t len_dest = strlen(dest);
// 如果源字符串结尾不是'\0',需要先追加一个空字符
if (src[len_dest - 1] != '\0') {
dest[len_dest] = '\0';
}
// 连接字符串
strcat(dest, src);
} else {
printf("Invalid input!\n");
}
}
int main() {
char str1[50], str2[50];
printf("Enter the first string: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0';
printf("Enter another string to append: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0';
concat_strings(str1, str2);
printf("Concatenated string: %s\n", str1);
return 0;
}
```
3. **求串长** (strlen):
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[50];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0';
int length = strlen(str);
printf("Length of the string: %d\n", length);
return 0;
}
```
阅读全文