我想问一下如何识别C中的序列,例如AAAAA& ddddd序列是所有输入的字符必须相同..怎么可能实现呢?我需要使用char吗?这是我试过的
#include<stdio.h>
int main() {
char ch;
scanf("%cccc", &ch);
if (ch = 'c')
printf(&ch);
else
printf("Character is Not the same sequence");
return (0);
}
答案 0 :(得分:1)
比较两个字符:
char a = 'a';
char b = 'b';
return a == b; // this compares integer values of two characters
// and returns 1/0 if they do match/do not match
比较字符串:
char str1 = "AAAAA";
char str2 = "aaaaa";
return strcmp(str1, str2);
man strcmp(3):
strcmp()函数比较两个字符串s1和s2。它回来了 小于等于的整数 如果发现s1,则分别小于,或匹配,或大于零 比s2。 strncmp()函数类似,只是它比较了s1和s的唯一第一个(最多)n个字节 S2。
您的代码包含很少的错误。 %c
格式用于扫描单个字符,使用%s
表示字符串。这里:
if (ch = 'c')
您已将'c'
分配给ch
,而不是您想要的。在C中使用==
进行比较。
答案 1 :(得分:1)
我会试试这个:
答案 2 :(得分:0)
为要查找的模式创建宏。将您输入的输入强制转换为您想要识别的模式的大小。减去两者。如果0模式匹配。否则,向右移1位并重复。例如,找到#define wPAT 0x1234的模式。输入=&GT; U32 dwInput = 0x12345678。结果=(U16)dwInput - wPAT。如果为0,则找到模式。否则,dwInput&gt;&gt; 1并重复Result =(U16)dwInput - wPAT。重复16次以查找是否存在模式