查找某字符串出现的位置,并且输出该第一个字母所在的位

简介: 查找某字符串出现的位置,并且输出该第一个字母所在的位

查找某字符串出现的位置,并且输出该第一个字母所在的位置


最近某大型节目《爸爸去哪儿》,火遍了天,五位可可爱爱的萌宝宝深得观众喜爱,


因此读者对于《爸爸去哪儿》联想到了C语言,将其结合起来,通过将现实与代码的连用,才能更受读者所喜爱。


现在给定一个字符串,已知字串'BB'代表芭比出现的位置,每个字符串有且仅仅会出现一次'BB'


要求:


输入:一个字符串,找出’BB‘在该字符串中所在的位置,字符串长度不超过1000;


输出:代表’BB'所在的位置


#include <stdio.h>
int main()
{
  char a[1001] = { 0 };
  int i, n;
  for (i = 0; i <= 1001; i++)
  {
  scanf_s("%c", &a[i]);
  if (a[i] == '\n')
    break;
  if (a[i] == 'B' && a[i - 1] == 'B')
    n = i;
  }
  printf("%d", n);
  return 0;
}

在这里,定义的字符串数组a[1001]={0};原因是因为:字符串数组以“\0"结尾;并且"\0"占据一个字符;


for循环输入函数,在这里笔者所用的代码有点简化,建议读者使用时候:多用for循环来写,笔者只用一个for循环,显得不合适


在这里:


if (a[i] == '\n')
    break;

起到了判断输入的字符串结束的作用;笔者定义了1001个字符,显然我们不需要输入这么多,因此用该代码,显得非常重要,但如果不用这个代码,回车键也起不到作用,将可能会一直输出.......


在这里运行的结果为:


0a2653c851af460fa595bd959398a8f1.png


读者可以查看BB字符中第一个B字符所在的位置,是不是跟输出的位置一样?


笔者所查的是一样的。


在这个代码里面:


if (a[i] == 'B' && a[i - 1] == 'B')

后面的a[i-1]的原因,想必读者都能看出来,原因是:在数组中,第一个数组的下标为0;然后依次增加;


通过此代码,读者也可以进行改编,查找某一段特定的字符,并且输出该字符的初始位置


但是如果将a[i-1]改为a[i+1]的话,输入好字符串,摁下回车键,将会出现错误情况


6de278e6d6694ce5bb08e7e842b7e74b.png


因此,读者需要注意这个情况,完美避坑


相关文章
|
14天前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
7月前
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
|
12月前
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
112 0
|
算法
LeetCode:28. 找出字符串中第一个匹配项的下标
题目描述:给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。
|
算法 Java C语言
找出字符串中第一个匹配项的下标 (LeetCode 28)
找出字符串中第一个匹配项的下标 (LeetCode 28)
180 0
第一个只出现一次的字符
第一个只出现一次的字符
34 0
|
人工智能 BI
762 字符串匹配----给定两个长度相同的字符串 a 和字符串 b。如果在某个位置 i 上,满足字符串 a 上的字符 a[i] 和字符串 b 上的字符 b[i] 相同,那么这个位置上的字符就是匹配
给定两个长度相同的字符串 aa 和字符串 bb。 如果在某个位置 ii 上,满足字符串 aa 上的字符 a[i]a[i] 和字符串 bb 上的字符 b[i]b[i] 相同,那么这个位置上的字符就是匹配的。 如果两个字符串的匹配位置的数量与字符串总长度的比值大于或等于 kk,则称两个字符串是匹配的。
208 0
C#编程-17:字符串取第一个和最后一个字符
C#编程-17:字符串取第一个和最后一个字符
262 0
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)
【C++】判断一个字符串是否包含另一个字符串,包含则返回第一个字符在另一个字符串中的下标(不使用库函数)