编写一个函数,接受字符串 ‘6-1-2 * 分数 10 作者李祥 单位湖北经济学院’ 作为输入,目标是返回该字符串中’*'左边的所有内容,包括空格和标点。这个函数应如何设计? 用c语言
时间: 2024-10-29 14:20:37 浏览: 51
你可以使用C语言编写一个简单的函数来处理这个问题。这里可以使用指针和循环来找到星号前的部分。下面是一个可能的函数设计:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* get_before_star(const char* input);
// 实现函数
char* get_before_star(const char* input) {
int len = strlen(input); // 获取字符串长度
for (int i = 0; i < len; i++) {
if (input[i] == '*') { // 找到星号位置
return (char*) &input[0]; // 返回直到星号的位置,即整个左侧部分的地址
}
}
return input; // 如果没有找到星号,直接返回原串
}
int main() {
const char* str = "6-1-2 * 分数 10 作者李祥 单位湖北经济学院";
char* result = get_before_star(str);
printf("'%s' 星号左边的内容: %s\n", str, result);
free(result); // 释放内存,因为只复制了数据,不是整个字符串
return 0;
}
```
在这个函数中,我们遍历输入字符串,当遇到'*'字符时,停止并返回从开始到那个位置的内存地址。如果没有找到'*',则返回整个输入。
阅读全文