程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言字符串的常見特殊操作(除了string.c實現的那些接口)

C語言字符串的常見特殊操作(除了string.c實現的那些接口)

編輯:關於C

字符串操作中,必須掌握的一些之前已經在文章有寫過了,比如說字符串查找,字符串粘帖,字符串拷貝等等,這些在標准C庫的string.c中已經有實現,故包含#include 就可以使用了。

除了上述所說的接口,還有一些在工作中常用的接口,比如:從字符串中刪除指定的字符,刪除字符串的第一個字符,將字符串左右翻轉等等,今天就挑幾個這樣的接口來說一下:大笑

我們直接上代碼:

#include 
#include 
#include 
#define uchar unsigned char 
#define uint  unsigned int 

//刪除字符串中所有的數字 
void del_str_Num(char* str)
{
	static int i , j;
	while(str[i]!='\0')
	{
		if(str[i]>'9'||str[i]<'0')
			str[j++]=str[i];
		i++;
	}
	str[j]='\0';
}
//刪除字符串中的第一個字符 
static char* ltrim(char *s, char c)
{
  while(*s!=0&&*s==c)
  		s++;
  return s;
}

//查找並刪除字符串中指定的任意字符 
static char *delstr_c(char s[100] , char c)
{
	char *p , *q ;
	for(p = s , q = s ; *p != '\0' ; p++)
		if(*p != c)*q++ = *p ; 
	*q = *p ;
	return s ;
}


/*將字符串s中出現的字符c刪除*/ 
void del_str_c(char s[],int c) 
{ 
    int i,j; 
    for (i = 0, j = 0; s[i] != '\0'; i++) 
    { 
        if (s[i] != c) 
        { 
            s[j++] = s[i]; 
        } 
    } 
    s[j] = '\0';  
} 
//查找字符串中的字符並將對應的字符刪除 
char *strdel_c(char *s,char c) 
{
  char *p=s,*q=s;
  for(;*p;p++)
  {
    if(*p != c )
	{
       if(q == p)
       	  q++ ; 
       else 
       	  *q++ = *p ;
	}
  }
  *q = '\0';
  return s;
}
//將字符串左右翻轉 
char* strfilp(char* str)  
{  
    //h指向str的頭部
    char* h = str;      
    char* t = str;  
    char ch;  
  
    //t指向s的尾部 
    while(*t++) ;
    t--;    //與t++抵消  
    t--;    //回跳過結束符'\0'
  
    //當h和t未重合時,交換它們所指向的字符
    while(h < t)  
    {  
        ch = *h;  
        *h++ = *t;   //首尾移動
        *t-- = ch;    
    }  
  
    return(str);  
}  

int main()
{
	char str[20] = "23.3hhlo965" ;
	char *str1 = "hello"; 
	del_str_c(str , '.');  //刪除該字符串中的.
	printf("%s\n",str);
	del_str_Num(str);      //刪除該字符串中的所有數字
	printf("%s\n",str);
	strfilp(str);          //將字符串左右翻轉
	printf("%s\n",str);
	
	return 0;
}
運行結果:

\
上述實現的接口,我只測試了其中的三個,剩下的基本上都是雷同,只是用不同的方法去實現罷了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved