用c语言实现利用定长顺序存储完成: (1)从键盘输入一个串,求串的长度 (2)从键盘输入两个串,实现串的连接操作 (3)从键盘输入一个串,求从该串第i个字符开始的j个子串 选做: (1)从键盘输入两个串,实现两个串的比较 (2)从键盘输入一个串,删除该串中指定字符
时间: 2024-12-10 09:35:25 浏览: 17
在C语言中,我们可以使用`stdio.h`库中的函数来实现上述功能:
(1) 求字符串长度:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设我们限制字符串长度不超过99
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 使用fgets获取用户输入,包括换行符
int len = strlen(str) - 1; // 减去结束符'\0'
printf("字符串长度为: %d\n", len);
return 0;
}
```
(2) 连接两个字符串:
```c
#include <stdio.h>
#include <string.h>
void concat_strings(char* str1, char* str2) {
int len1 = strlen(str1);
strcat(str1 + len1, str2); // 直接拼接到第一个字符串后面
}
int main() {
char str1[100], str2[100];
// 分别输入两个字符串并保存
// 调用concat_strings函数将str2连接到str1末尾
// ...
return 0;
}
```
(3) 提取子串:
```c
#include <stdio.h>
#include <string.h>
char* get_substring(const char* str, int start, int length) {
if (start < 0 || length <= 0 || start > strlen(str)) {
return NULL;
}
char sub_str[length];
strncpy(sub_str, &str[start], length);
sub_str[length] = '\0';
return sub_str;
}
int main() {
char str[100];
int i, j;
// 输入主字符串及起始位置和长度
// 调用get_substring得到子串
// ...
return 0;
}
```
选做:
(4) 两字符串比较:
```c
int compare_strings(const char* str1, const char* str2) {
while (*str1 && *str2 && *str1 == *str2) {
str1++;
str2++;
}
return *str1 - *str2;
}
// 在main函数中调用这个函数并判断返回值
```
(5) 删除指定字符:
```c
void remove_char(char* str, char ch) {
int index = 0;
while (str[index]) {
if (str[index] != ch) {
str[index + 1] = str[index];
}
index++;
}
str[index] = '\0'; // 确保字符串结束
}
// 在main函数中输入原始字符串和要删除的字符
```
记得在主函数中适当处理用户输入,并处理可能出现的边界情况。以上代码示例省略了错误检查和用户交互的部分,实际应用时需要完善。
阅读全文