十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
成都创新互联公司主营白水网站建设的网络公司,主营网站建设方案,成都APP应用开发,白水h5微信小程序搭建,白水网站营销推广欢迎白水等地区企业咨询
//转小写
char tolower( char c)
{
if( c ='A' c='Z')
return c-'A'+'a';
}
//大小写敏感
bool findstr( char * instr, char * findstr)
{
char *s = instr;
char *t ;
while(1)
{
t = findstr;
while( *s != *t *s != '\0')
s++;
if( *s == '\0')
return false;
while( *t == *s *t != '\0' *s !='\0')
s++,t++;
if(*t == '\0')
return true;
}
}
//大小写不敏感
bool findstr_i( char * instr, char * findstr)
{
char *s = instr;
char *t ;
while(1)
{
t = findstr;
while( tolower(*s) != tolower(*t) *s != '\0')
s++;
if( *s == '\0')
return false;
while( tolower(*s) == tolower(*t) *t != '\0' *s !='\0')
s++,t++;
if(*t == '\0')
return true;
}
}
//主函数
int main()
{
char str[100];
char tarstr[100];
int count;
int flag;
int i;
scanf("%s",str);
scanf("%d",flag);
scanf("%d",count);
for( i = 0;i count;i++)
{
scanf("%s",tarstr);
if( 1 == flag findstr( tarstr, str))
printf("%s\n",tarstr);
if( 0 == flag findstr_i( tarstr, str))
printf("%s\n",tarstr);
}
::fflush(stdin);
getchar();
return 0;
}
//程序D19.c的功能是将inBuf中字符串拆分成一个个的单词。
//程序说明:
//(1)单词之间的分隔符由串divChar,程序中定义为“; ? !, . / \”。
//(2)函数getStrFromBuf的功能是从Buf的开始处寻找第一个单词,将找到的单词作为一个字符串复制到Str处,divStr指明单词间的分隔符。GetStrFromBuf的返回值指向已找到单词的下一个字符。
//(3)函数charInStr的功能是判断字符t是否出现在串Str中。
//(4)主程序的功能是将inBuf中的所有单词在屏幕上显示出来。
#includestdio.h
#define Yes 1
#define No 0
char *getStrFromBuf(char *Buf, char *Str, char *divStr);
int charInStr(char *Str, char t);
int main(void)
{
char inBuf[100] = "how old are/ you?", *point, oneWord[20];
char divChar[] = " ;?!,./\\";
point = inBuf;
while (*point)
{
/*********Found************/
point=getStrFromBuf(point, oneWord, divChar);
if (*oneWord)
{
puts(oneWord);
}
}
return 0;
}
int charInStr(char *Str, char t)
{
for (; *Str; Str++)
{
/*********Found************/
if (*Str == t)
{
/*********Found************/
return Yes;
}
}
/*********Found************/
return No;
}
char *getStrFromBuf(char *Buf, char *Str,const char *divStr)
{
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == No)
{
break;
}
}
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == Yes)
{
break;
}
/*********Found************/
*Str = *Buf;
Str++;
}
/*********Found************/
*Str = '\0';
/*********Found************/
return ++Buf;
}
unsigned int slen(const char *a)
{
unsigned int i=0;
while (a[i])
++i;
return i;
}
int Instr(const char *a,const char *b)
{
int j,i,lena=slen(a),lenb=slen(b);
if (lenalenb) return 0;
for (i = 0; i=lena-lenb; i++) {
for (j=0; jlenb; j++) {
if (b[j]!=a[i+j]) break;
}
if (j=lenb) {
return i;
}
}
return -1;
}
当然有:
#include string.h
char *strstr(const char *haystack, const char *needle);
Return
It returns a pointer into the string haystack that is the first character of
the substring, or a null pointer if no match was found. If needle is an empty
string, the function returns haystack.
Description
This is like strchr() , except that it searches haystack for a substring
needle rather than just a single character.
顺便,如果你自己写不出这样的函数,不建议你继续学习C。