用指针在字符串查找特定字符
时间: 2024-05-16 22:17:43 浏览: 7
可以使用指针来在字符串中查找特定字符。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
char str[] = "Hello, World!";
char ch = 'o';
char *ptr = str;
while (*ptr != '\0') {
if (*ptr == ch) {
printf("'%c' found at position %ld\n", ch, ptr - str);
}
ptr++;
}
return 0;
}
```
在上面的代码中,我们首先定义了一个字符串 `str` 和一个要查找的字符 `ch`,然后定义了一个指针 `ptr` 并将其初始化为指向字符串的第一个字符。接下来,我们使用 `while` 循环遍历整个字符串,直到遇到字符串的结尾为止。在循环中,我们检查指针所指向的字符是否与要查找的字符相同。如果是,我们输出该字符的位置。最后,我们递增指针以继续遍历字符串。
注意,在这个例子中,我们使用了指针的算术运算来计算特定字符在字符串中的位置。通过将指针减去字符串的首地址,我们可以得到指针指向的字符在字符串中的偏移量。
相关问题
利用指针在字符串中找特定字符
可以使用指针遍历字符串中的每一个字符,并判断是否为特定字符,代码示例如下:
```c++
#include <iostream>
using namespace std;
int main() {
char str[50] = "hello world";
char c = 'o'; // 要查找的字符
char *p = str; // 指向字符串首地址的指针
while (*p != '\0') { // 遍历整个字符串
if (*p == c) { // 判断当前字符是否为要查找的字符
cout << "Found " << c << " at position " << p - str << endl;
// 输出字符位置(注意要将指针减去字符串首地址得到位置)
}
p++; // 指针后移
}
return 0;
}
```
输出结果为:
```
Found o at position 4
Found o at position 7
```
这表示在字符串中找到了两个字符 'o',分别位于第 5 个和第 8 个字符位置上。
C语言如何查找字符串得特定字符出现在哪里
C语言提供了一些函数来查找字符串中特定字符出现的位置,其中最常用的是strchr()函数。
strchr()函数的原型如下:
```
char *strchr(const char *str, int c);
```
该函数在字符串 `str` 中查找字符 `c` 的第一次出现,并返回指向该字符的指针。如果未找到该字符,则返回空指针。
例如,以下示例演示了如何使用strchr()函数查找字符串中特定字符的位置:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "hello world";
char *ptr = strchr(str, 'o');
if(ptr != NULL)
{
printf("字符'o'在字符串中的位置是:%d\n", ptr - str);
}
else
{
printf("未找到该字符\n");
}
return 0;
}
```
输出结果为:字符'o'在字符串中的位置是:4
在上面的示例中,我们首先定义了一个字符串 `str`,然后使用strchr()函数查找字符 'o' 在字符串中的位置,并将其存储在指针变量 `ptr` 中。最后,我们通过指针的减法运算,计算出字符 'o' 在字符串中的位置,并将其打印出来。