c語言中的字元串函數
㈠ c語言求一個關於字元串的函數
可利用strstr函數。
strstr函數功能是找出字元串中特定字元串第一次出現的位置。如果找到,返回字元串中出現特定字元串的地址;如果沒找到,返回空指針。如果要返回值是bool型的話,可以自寫一個函數根據strstr的返回值,判斷自寫函數的返回值。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不區分大小寫,可以用strlwr(轉換為大寫)或strupr(轉換為小寫)將兩字元串同一轉換為大寫(或小寫)再作查找。
㈡ C語言字元串操作函數
strupr:將字元串s轉換為大寫形式
strlwr:將字元串s轉換為小寫形式
以上兩個沒說的!
●strlen功能:返回字元串s的長度,不包括串結束字元'\0',也不是數組長度;
如下幾種方式:
1)strlen("china") 結果為5
2)char s[20]="china";
strlen(s) 結果為5
3)char *s="china";
strlen(s) 結果為5
●strcpy(字元串1,字元串2): 把字元串2中的所有內容,復制到字元串1中,不管字元串1中原先存放的是什麼,全部被覆蓋(要注意的是s1的長度要足夠容納s2)
●strcat(字元串1,字元串2): 將兩個字元串連接,形成一個新的字元串(要注意的是s1的長度要足夠容納s1和s2,只能字元串和字元串連接,不能直接和整型,float,double等連接,不過可以加上雙引號" ",使之變成字元型)
如下:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
char b[100];
strcpy(a,"我愛-");
strcpy(b,"-美女");
strcat(a,b);
puts(a); /*輸出:我愛--美女*/
}
●strcmp比較字元串的大小,但不是比較s1和s2的長度,而是比較對應字元串中的ASCII碼的大小
如下:
char s1[10]="china";
char s2[10]="chz";
strcmp(s1,s2); //返回一個負數,即s1<s2。雖然s1的長度大於s2,但比較的是ASCII碼
㈢ C語言:幾個簡單的字元串函數
//每個函數運行,input char從鍵盤輸入一個要處理的字元串,此程序在vc6.0上編譯運行都通過
#include <stdio.h>
fun1(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<n;i++)
if(a[i]!=a[i+1])
printf("%c",a[i]);
}
fun2(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<3;i++)
if('a'<=a[i]<='z')
printf("%c",a[i]-32);
else
printf("%c",a[i]);
printf("\n");
}
fun3(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
printf("%d\n",n);
}
fun4(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=n-1;i>=0;i--)
printf("%c",a[i]);
}
main()
{
char a[100],b[100],c[100];
fun1(a);
fun2(a);
fun3(b);
fun4(c);
}
㈣ C語言中的字元處理函數
這三個哪個都不是字元處理函數,也不是語句。若在最後都加一個分號,那就是三條語句,也不是函數。這樣的請三都是同一個意思,不過要知道*是char的組成部分,即char *型指針pWord。
㈤ c語言中對字元串截取的函數!
根據單個分隔字元用split截取
string st="GT123_1";
string[] sArray=st.split("_");
即可得到sArray[0]="GT123",sArray[1]="1";
2.利用多個字元來分隔字元串
tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3根據字元串或字元串組來截取字元串
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
4提取字元串中的第i個字元開始的長度為j的字元串;
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
㈥ 在線等 C語言中,求字元串子串的函數
在純C中好像沒有,但是C++中很容易,你可以去查一下,網上有很多純C實現的子串求法
string的substr函數是C++的,是STL庫中的,而非純C的實現,純C的標准庫中沒有直接獲得子串的方法,自己寫很容易
㈦ c語言字元串函數
for(初始化;判斷語句;循環變數的變化)
即使沒有,冒號不可以省略;
!(len2=strlen(s2))-》從右邊看,把strlen(s2)值賦給len2,然後(!len2),主要是否判斷是否為空
㈧ 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 <ctype.h>
int nstrcmp(const char *a,const char *b)
{
while (*a&&*b)
{
if (*a==*b||isalpha(*a)&&isalpha(*b)&&tolower(*a)==tolower(*b)) {
a++;
b++;
}
}
return *a-*b;
}
int main(void)
{
char a[]="ABCe";
char b[]="aBcE";
printf("%d",nstrcmp(a,b));
return 0;
}
//---------------------------------------------------------------------------
㈩ 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);