日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一文聊聊C語言中的字符串操作(大小寫轉(zhuǎn)換、比較、排序等)

字符串是 C語言 程序中經(jīng)常處理的對象之一,下面本篇文章就來帶大家聊聊C語言中的字符串處理,了解一些字符串操作函數(shù),希望對大家有所幫助!

創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、眉山網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為眉山等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

字符串在C語言里使用非常多,因為很多數(shù)據(jù)處理都是文本,也就是字符串,特別是設(shè)備交互、web網(wǎng)頁交互返回的幾乎都是文本數(shù)據(jù)。

字符串本身屬于字符數(shù)組、只不過和字符數(shù)組區(qū)別是,字符串結(jié)尾有’\0’。 字符串因為規(guī)定結(jié)尾有'\0',在計算長度、拷貝、查找、拼接操作都很方便。

char buff[]="我是一個字符串";
char a[]="1234567890";
char b[]="abc";
char c[]={'a','b','c','\0'};

在普通的字符數(shù)組結(jié)尾加一個 \0 就變成了字符串。

2. 處理字符串里字母大小寫

將字符串里所有大寫字母全部換成小寫字母?;蛘咝懽帜溉繐Q成大寫字母??梢酝ㄟ^形參進(jìn)行區(qū)分。

#include 
#include 
#include 
void func(char *str,int flag);
int main()
{
    char buff[100];
    printf("從鍵盤上輸入字符串:");
    scanf("%s",buff);
    printf("源字符串:%s\n",buff);
    func(buff,0);
    printf("大寫轉(zhuǎn)換小寫:%s\n",buff);
    func(buff,1);
    printf("小寫轉(zhuǎn)大寫:%s\n",buff);
    return 0;
}

//函數(shù)功能: 大寫小寫轉(zhuǎn)換
//flag=0表示大寫轉(zhuǎn)換小寫  =1表示小寫轉(zhuǎn)大寫
void func(char *str,int flag)
{
    int data;
    while(*str!='\0')
    {
        if(flag)
        {
            if(*str>='a'&& *str<='z') //小寫
            {
                *str=*str-32;
            }
        }
        else
        {
            if(*str>='A'&& *str<='Z') //小寫
            {
                *str=*str+32;
            }
        }
        str++;
    }
}

3. 從鍵盤上錄入2個字符串,判斷是否相等

#include 
int main()
{
    char str1[100];
    char str2[100];
    int i=0;
    /*1. 錄入數(shù)據(jù)*/
    printf("輸入字符串1:");
    scanf("%s",str1);
    printf("輸入字符串2:");
    scanf("%s",str2);
    /*2. 比較字符串*/
    while(str1[i]!='\0'||str2[i]!='\0')
    {
        if(str1[i]!=str2[i])break;
        i++;
    }
    if(str1[i]=='\0'&&str2[i]=='\0')
    {
        printf("字符串相等.\n");
    }
    else
    {
        printf("字符串不相等.\n");
    }
    return 0;
}

4. 從鍵盤上錄入一個字符串,按照小到大的順序排序

#include 
#include 

int main()
{
    char str1[100];
    int len=0;
    int i,j;
    int tmp;
    printf("輸入要排序的字符串:");
    scanf("%s",str1);
    len=strlen(str1);
    //開始排序
    for(i=0;istr1[j+1])
            {
                tmp=str1[j];
                str1[j]=str1[j+1];
                str1[j+1]=tmp;
            }
        }
    }
    printf("排序之后的字符串:%s\n",str1);
    return 0;
}

5. 從鍵盤上輸入一個字符串,轉(zhuǎn)為整數(shù)輸出

#include 
#include 
int main()
{
    //"123"
    char str[100];
    int data=0;
    int i=0;
    printf("從鍵盤上輸入字符串:");
    scanf("%s",str);
    while(str[i]!='\0')
    {
        data*=10;//data=0 data=10 data=120
        data+=str[i]-'0';//data=1 data=12 data=123
        i++;
    }
    printf("data=%d\n",data);
    return 0;
}

6. 字符串刪除

從鍵盤上錄入一個字符串,刪除字符串里指定的單詞,輸出結(jié)果。

比如:原字符串 ”akjbcds123dfjvbf123fdvbfd123”

刪除單詞:“123”

輸出的結(jié)果:”akjbcdsdfjvbffdvbfd”

#include 
#include 

int main()
{
    char str1[100];
    char str2[100];
    int i=0,j=0;
    int str2_len=0;
    /*1. 錄入數(shù)據(jù)*/
    printf("輸入源字符串:");
    scanf("%s",str1);
    printf("輸入要刪除的字符串:");
    scanf("%s",str2);
    /*2. 計算要刪除字符串的長度*/
    str2_len=strlen(str2);
                
    /*3. 查找字符串*/
    for(i=0;str1[i]!='\0';i++)
    {
        //比較字符串
        for(j=0;str2[j]!='\0';j++)
        {
            if(str1[i+j]!=str2[j])break;
        }
        if(str2[j]=='\0')
        {
            //4. 刪除字符串---后面向前面覆蓋
            for(j=i;str1[j]!='\0';j++)
            {
                str1[j]=str1[j+str2_len];
            }
            str1[j]='\0';
            i--;
        }
    }
    //5. 輸出結(jié)果
    printf("str1=%s\n",str1);
    return 0;
}

7. 字符串插入

從鍵盤上錄入一個字符串,從指定位置插入一個字符串,再輸出結(jié)果。

比如:原字符串“1234567890”

(1). 從指定位置插入新的單詞。 比如 從第2個下標(biāo)插入一個“ABC”字符串。

結(jié)果: “123ABC4567890”

#include 
#include 

int main()
{
    char str1[100];
    char str2[100];
    int addr=0;
    int str1_len;
    int str2_len;
    int i;
    /*1. 錄入數(shù)據(jù)*/
    printf("錄入源字符串:");
    scanf("%s",str1);
    printf("錄入要插入的字符串:");
    scanf("%s",str2);
    printf("輸入要插入的下標(biāo)位置:");
    scanf("%d",&addr);
    str1_len=strlen(str1); //3
    str2_len=strlen(str2); //2
    
    /*2. 完成插入*/
    //完成數(shù)據(jù)移動
    for(i=str1_len-1;i>=addr;i--)
    {
        str1[i+str2_len]=str1[i];
    }
    //數(shù)據(jù)替換
    for(i=0;i

8. 字符串替換

從鍵盤上錄入一個字符串,將指定單詞替換成想要的單詞。

比如:原字符串“123jfvfdj123dkfvbfdvdf”

想要將“123”替換成“888”或者“8888”或者“88”

#include 
#include 

int main()
{
    char str1[100];
    char str2[100];
    char str3[100];
    int str1_len=0;
    int str2_len=0;
    int str3_len=0;
    int i,j;
    int cnt=0;
    /*1.準(zhǔn)備數(shù)據(jù)*/
    printf("輸入源字符串:");
    scanf("%s",str1);
    printf("輸入查找的字符串:");
    scanf("%s",str2);
    printf("輸入替換的字符串:");
    scanf("%s",str3);
    /*2. 計算長度*/
    str1_len=strlen(str1);
    str2_len=strlen(str2);
    str3_len=strlen(str3);
    /*3. 字符串替換*/
    for(i=0;istr3_len)
            {
                cnt=str2_len-str3_len; //差值
                //完成數(shù)據(jù)向前移動--覆蓋
                for(j=i+str2_len-cnt;j=i+str2_len;j--)
                {
                    str1[j+cnt]=str1[j];
                }
                str1[str1_len+cnt]='\0';
            }
            //替換
            for(j=0;j                                                
當(dāng)前名稱:一文聊聊C語言中的字符串操作(大小寫轉(zhuǎn)換、比較、排序等)
網(wǎng)頁路徑:http://www.dlmjj.cn/article/dppeceo.html