C语言输入一个字符串,定位某个字符在字符串中的位置
时间: 2023-10-07 22:03:58 浏览: 269
你可以使用C语言中的字符串函数`strchr()`来定位某个字符在字符串中的位置。该函数的原型如下:
```
char *strchr(const char *str, int c);
```
其中,`str`为要搜索的字符串,`c`为要查找的字符。函数返回一个指向被查找字符第一次出现的位置的指针,如果未找到该字符,则返回`NULL`。
以下是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char ch;
char *p;
printf("请输入一个字符串:");
gets(str);
printf("请输入要查找的字符:");
scanf("%c", &ch);
p = strchr(str, ch);
if (p != NULL) {
printf("字符 %c 在字符串中的位置为:%d\n", ch, p - str);
} else {
printf("未找到该字符!\n");
}
return 0;
}
```
注意:以上示例代码中使用了不安全的`gets()`函数读取字符串,实际应用中应使用更为安全的函数替代,例如`fgets()`。
相关问题
c语言输入一个字符串并返回字符串
要在C语言中输入一个字符串并返回字符串,可以使用scanf()函数或fgets()函数。其中,scanf()函数可以读取标准输入中的字符串,而fgets()函数可以从指定的文件流中读取字符串。下面是使用fgets()函数实现的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
char* getString() {
char* str = (char*)malloc(sizeof(char) * 100);
fgets(str, 100, stdin);
return str;
}
int main() {
char* str = getString();
printf("输入的字符串为:%s", str);
free(str);
return 0;
}
```
在上面的代码中,我们定义了一个名为getString()的函数,该函数使用fgets()函数从标准输入中读取字符串,并将其存储在动态分配的内存中。然后,我们在主函数中调用该函数,并输出输入的字符串。最后,我们使用free()函数释放动态分配的内存。
c语言输入两个字符串,在字符串1中查找字符串2
以下是C语言中在字符串1中查找字符串2的代码示例:
```c
#include <stdio.h>
#include <string.h>
void getCommon(char str1[], char str2[], char *str3) {
int i, j, k;
int len1 = strlen(str1);
int len2 = strlen(str2);
int len = 0;
for (i = 0; i < len1; i++) {
for (j = 0; j < len2; j++) {
for (k = 0; (str1[i + k] == str2[j + k] && str1[i + k] != '\0'); k++);
if (k > len) {
len = k;
strncpy(str3, str1 + i, len);
}
}
}
str3[len] = '\0';
if (len == 0) {
printf("字符串1中未找到字符串2\n");
} else {
printf("字符串1中找到的字符串2为:%s\n", str3);
}
}
int main() {
char str1[100], str2[100], str3[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
getCommon(str1, str2, str3);
return 0;
}
```
输入两个字符串后,程序会在字符串1中查找字符串2,如果找到了,就会输出找到的字符串2,否则输出未找到。