Ⅰ c語言字元串匹配
1、c語言字元串匹配可以用strcmp函數。
2、strcmp是比較兩個字元串的大小,兩個字元串相同時返回0,第一個字元串大於第二個字元串時返回一個正值,否則返回負值.
比較兩個字元串的演算法是:逐個比較兩個串中對應的字元,字元大小按照ASCII碼值確定,從左向右比較,如果遇到不同字元,所遇第一對不同字元的大小關系就確定了兩個字元串的大小關系,如果未遇到不同字元而某個字元串首先結束,那麼這個字元串是較小的,否則兩個字元串相等。
Ⅱ C語言字元串處理函數
其實那些字元串函數並不復雜。任何一個的實現都不出五行代碼:
char *strcpy( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ = *src++ )
;
return destination;
}
char *strcat( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ )
;
strcpy( --dst, src );
return destination;
}
int strcmp( const char *s1, const char *s2 ) {
for( ; *s1 == *s2; s1++, s2++ )
if( *s1 == '\0' ) return 0;
return *s1 - *s2;
}
unsigned strlen( const char *s ) {
const char *t = s;
while( *t++ )
;
return --t - s;
}
Ⅲ C語言:我的字元串匹配函數
我這里運行,沒有運行時錯誤,只是按你的代碼結果不對。
調整後代碼如下:
#include<stdio.h>
#include<string.h>
char*strstr(char*str1,char*str2)
{
intn1=strlen(str1);
intn2=strlen(str2);
intflg=0;
char*p1=str1;
char*p2=str2;
if(n1<n2)returnNULL;
inti;
for(i=0;i<n1-n2+1;i++)
{
p1=str1+i;
p2=str2;
while(*p2!=NULL)//
{
if(*p1!=*p2)
{
flg=0;
p1++;
p2++;
break;
}
p1++;
p2++;
flg=1;
}
if(flg)returnstr1+i;//你到底要輸出什麼,原函數是輸出位置int
}
returnNULL;//
}
intmain()
{
charstr1[]="str1adsfqwer";
charstr2[]="ads";
char*p=strstr(str1,str2);
printf("%s ",p);
return0;
}
Ⅳ 寫一個C語言查找字元串函數
intsame(char*a,char*b)
{
ints=0;
char*m=b;
while(*a==*b&&a<m){a++;b++;s++;}
returns;
}
intmaxsubstr(char*s,char**p)
{
char*last=NULL;
intlastL=0;
while(*s)
{
char*d=s+1;
while(*d)
{
intl=same(s,d);
if(l>lastL){lastL=l;last=s;}
d++;
}
s++;
}
*p=last;
returnlastL;
}
Ⅳ c語言字元串匹配的問題
如果是求取字元串B是否是A其中的部分字串,比如A=「aaabbcdf」,B=「bcd」,此處應該返回真,需要一個嵌套循環,程序需要那麼多!
Ⅵ c語言如何匹配字元串的問題
可以使用strcmp函數匹配兩個字元串,也可以用strstr函數在前一個字元串中查找後字元串包含的字元串
Ⅶ c語言字元串處理函數有哪些
1、puts函數——輸出字元串的函數
一般的形式為puts(字元串組)
作用:將一個字元串輸出到終端。如,char一個string,並賦予初值。調用puts(string);進行字元串的輸出。
2、gets函數——輸入字元串的函數
一般的形式:gets(字元數組)
作用:從終端輸入一個字元串到字元數組,並且得到一個函數值成為字元數組的起始地址。
gets(str);
鍵盤輸入,,,,你懂得。
注意:puts和gets函數只能輸出或者輸入一個字元串。
3、strcat函數——字元串連接函數
一般的形式:strcat(字元數組1,字元數組2);
作用:把兩個字元串數組中字元串連接起來,把字元串2連接到字元串1的後面。
說明:字元數組1必須足夠大,以便容納連接後的新字元串。
4、strcpy/strncpy函數——字元串復制函數
一般形式:strcpy(字元數組1,字元串2);
作用:將字元串2復制到字元數組1中去。
如:char str1[10],str2[]="DongTeng";
strcpy(str1,str2);
執行後的結果為:你懂得
注意:
1. 不能用賦值語句直接將一個字元串常量或者字元數組直接給一個字元數組。
2. 用strncpy可以賦值指定的位置的字元。strncpy(str1,str2,3);將str2中的第3個字元復制到str1中。
5、strcmp函數——字元串比較函數
一般形式:strcmp(字元串1,字元串2);
作用:用來比較兩個字元串的差異。具有不同的比較規則。
6、strlen函數——測字元串長度的函數
一般形式:strlen(字元數組);
如:char str[10]="DongTeng";
printf("%d",strlen(str));
得到的結果是:5
7、strlwr函數——轉換為小寫的函數
一般形式:strlwr(字元串);
8、strupr函數——轉換為大寫的函數
一般形式:strupr(字元串)。
Ⅷ c語言字元串的查找用什麼函數
用strstr這個函數
包含文件:string.h
函數名: strstr
函數原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字元串在str1字元串中第一次出現的位置(不包括str2的串結束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
Ⅸ C語言中有哪些字元串處理函數
你可以看一下頭文件string.h和stdio.h裡面的相關函數聲明,好多好多。
這里就不一一列出了……比如下面列出的只是其中一部分……
_CRTIMP char * __cdecl strcpy(char *, const char *);
_CRTIMP char * __cdecl strcat(char *, const char *);
_CRTIMP int __cdecl strcmp(const char *, const char *);
_CRTIMP size_t __cdecl strlen(const char *);
_CRTIMP char * __cdecl strchr(const char *, int);
_CRTIMP int __cdecl _strcmpi(const char *, const char *);
_CRTIMP int __cdecl _stricmp(const char *, const char *);
_CRTIMP int __cdecl strcoll(const char *, const char *);
_CRTIMP int __cdecl _stricoll(const char *, const char *);
_CRTIMP int __cdecl _strncoll(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicoll(const char *, const char *, size_t);
_CRTIMP size_t __cdecl strcspn(const char *, const char *);
_CRTIMP char * __cdecl _strp(const char *);
_CRTIMP char * __cdecl _strerror(const char *);
_CRTIMP char * __cdecl strerror(int);
_CRTIMP char * __cdecl _strlwr(char *);
_CRTIMP char * __cdecl strncat(char *, const char *, size_t);
_CRTIMP int __cdecl strncmp(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicmp(const char *, const char *, size_t);
_CRTIMP char * __cdecl strncpy(char *, const char *, size_t);
_CRTIMP char * __cdecl _strnset(char *, int, size_t);
_CRTIMP char * __cdecl strpbrk(const char *, const char *);
_CRTIMP char * __cdecl strrchr(const char *, int);
_CRTIMP char * __cdecl _strrev(char *);
_CRTIMP size_t __cdecl strspn(const char *, const char *);
_CRTIMP char * __cdecl strstr(const char *, const char *);
_CRTIMP char * __cdecl strtok(char *, const char *);
_CRTIMP char * __cdecl _strupr(char *);
_CRTIMP size_t __cdecl strxfrm (char *, const char *, size_t);
Ⅹ c語言中字元串查找函數是什麼,調用格式是怎樣的
char *strchr(cs,c) return pointer to first occurrence of c in cs or NULL if not present.