本文目录一览:
1、C语言匹配数组里的内容,要怎么样匹配 2、[C语言,Else和哪个 if配对?为什么?](#C语言,Else和哪个 if配对?为什么?) 3、c语言括号配对问题 4、C语言怎么实现字符串的匹配?
C语言匹配数组里的内容,要怎么样匹配
如果是字符数组,可以使用strstr
函数查找匹配。
strstr()
函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。
包含文件:string.h
函数名: strstr
函数原型:
extern char *strstr(char *str1, const char *str2);
语法:
char *strstr(str1, str2)
str1
: 被查找目标(string expression to search)。str2
: 要查找对象(The string expression to find)。 返回值:若str2
是str1
的子串,则先确定str2
在str1
的第一次出现的位置,并返回此str1
在str2
首位置的地址;如果str2
不是str1
的子串,则返回NULL。 如果是普通类型的数组,需要使用双重循环来实现匹配。 例如:
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int b[3] = {5, 6, 7};
int i, j;
for (i = 0; i < 7; i++) {
for (j = 0; j < 3; j++) {
if (a[i + j] != b[j]) break; // 进行匹配,如果其中一个不匹配,中断循环。
}
if (j == 3) { // 寻找到匹配
printf("匹配!");
break;
}
}
if (i == 7) { // 循环完仍未找到匹配
printf("不匹配!");
}
C语言,Else和哪个 if配对?为什么?
和内层的if
配对,因为正确的代码格式是有这样要求的,每个语句包含的空格都是有严格要求的,有些地方需要空格,有些地方不需要,什么时候该空多少都是有意义的。尤其这样嵌套条件语句,书写一定要规范,不然很可能出现莫名其妙的错误。
c语言括号配对问题
#include <stdio.h>
int main() {
int n, j, i;
scanf("%d", &n);
for (; n > 0; n--) {
char s[1000] = {0}; // 不超过1000表示最大1000个字符,要给\0留个位置
scanf("%s", s);
j = 0; // j每次都要在这里赋初值0
for (i = 0; s[i]; i++) {
if (s[i] == ')') {
j--;
if (j < 0) // 遇到)就要看前面是否有过( ,没有过,则说明不匹配了
break;
} else if (s[i] == '(') {
j++;
}
}
if (j == 0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
C语言怎么实现字符串的匹配?
p == "delete"
要改成用 strcmp(p, "delete") == 0
来进行字符串匹配。
你的写法是判断两个指针地址是否相等,而不是指针指向的内容相同。
p
和 "delete"
的地址原本就不相等,一个指向了栈上分配了10个字节的空间,空间的内容是 "delete"
,另一个指向了常量区的 "delete"
。