使用c语言编写字符定位,输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现的位置开始输出字符串中的字符。本题要求编写函数(s,ch),在字符串S中查找字符ch,如果找到,返回第一次找到的该字符在字符串中的位置(地址);否则,返回空指针NULL
时间: 2024-10-24 08:17:26 浏览: 21
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符
在C语言中,你可以编写一个名为`find_char_pos`的函数来实现这个功能。这个函数接受两个参数,一个是字符串`s`,另一个是要查找的字符`ch`。下面是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 定义函数 find_char_pos
char* find_char_pos(const char* s, char ch) {
// 首先检查字符串是否为空
if (s == NULL) {
return NULL;
}
// 使用 while 循环遍历字符串,寻找字符ch的位置
int index = 0;
while (s[index] != '\0') { // '\0' 表示字符串结束
if (s[index] == ch) {
// 如果找到字符,记录位置并返回非空指针
return (char*) &s[index]; // 返回字符的地址
}
index++;
}
// 如果整个字符串都遍历完了还没找到字符,返回 NULL
return NULL;
}
int main() {
const char* str = "Hello, World!";
char ch = 'o';
char* pos = find_char_pos(str, ch);
if (pos != NULL) {
printf("Character '%c' found at position %d\n", ch, pos - str); // 减去str是为了获取索引而不是地址
} else {
printf("Character '%c' not found in the string.\n", ch);
}
return 0;
}
```
在这个例子中,我们首先检查字符串是否为空,然后遍历每个字符,当找到目标字符时返回其地址。如果没有找到,函数会返回NULL。
阅读全文