最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++如何去掉字符串首尾的空格

 更新時(shí)間:2023年08月14日 10:28:56   作者:CNDaisy  
這篇文章主要介紹了C++如何去掉字符串首尾的空格問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C++去掉字符串首尾空格

本關(guān)任務(wù):文本匹配的時(shí)候經(jīng)常會(huì)因?yàn)榭崭駛€(gè)數(shù)的不同而匹配失敗,現(xiàn)在要求你編寫程序?qū)斎氲淖址M(jìn)行處理,去掉首尾的空格。

例如:輸入的字符串是“ abcd ”,去掉首尾空格后字符串變?yōu)?ldquo;abcd”

編程要求

在右側(cè)編輯器中的Begin-End之間補(bǔ)充代碼,以實(shí)現(xiàn)去掉字符串(字符串由平臺(tái)提供,且已在主函數(shù)中獲?。┦孜部崭竦墓δ?。

具體要求如下:

  • 對(duì)于輸入的字符串,去掉該字符串首尾的空格后輸出;
  • 字符串的存儲(chǔ)使用一維字符數(shù)組,但本關(guān)要求使用指針操作。寫完程序后,你也會(huì)發(fā)現(xiàn)使用指針實(shí)現(xiàn)會(huì)容易得多。

測(cè)試說明

平臺(tái)會(huì)對(duì)你編寫的代碼進(jìn)行測(cè)試,比對(duì)你輸出的數(shù)值與實(shí)際正確數(shù)值,只有所有數(shù)據(jù)全部計(jì)算正確才能通過測(cè)試:

  • 為了方便顯示空格,下面給出的測(cè)試輸入使用下劃線 ‘_’ 表示空格。

測(cè)試輸入:_____asd預(yù)期

輸出:asd

測(cè)試輸入:_a_b_c_d預(yù)期

輸出:a_b_c_d

#include <iostream>
using namespace std;
char* trim(char* str);//聲明函數(shù)
int main()
{
    char s[1024];     // 定義存儲(chǔ)字符串的一維字符數(shù)組
    // 輸入一行字符,可以包含空格
    // 輸入的字符串存入s中,最多讀取個(gè)字符,后面自動(dòng)加上'\0'
    cin.getline(s, 1024);
    cout << trim(s) << endl;     // 輸出去掉首尾空格后的字符串
    return 0;
}
// 函數(shù)trim:去掉字符串首尾空格
// 參數(shù):str-字符指針,指向輸入的字符串
// 返回值:字符指針,指向去掉首尾空格后的字符串(首地址)
// 提示:可以直接在字符串str中操作
char* trim(char* str)
{
    //這里是指針在跑
    char* point = str;//組成新的指針
    while (*point != '\0')//讓指針往后跑,跑到最后一個(gè)空字符的位置停下來
    {
        point++;//結(jié)束時(shí)指針跑到最后一元素哪里了
    }
    point--;//后退一位,以除去最后一位的那個(gè)空字符
    while (point >= str && *point == ' ')//往回跑以除去尾部的空格字符,沒有空格了就停下來
    {
        *point = '\0';
        point--;
    }//此時(shí)除去了尾部的空格字符
    point = str;//重新定義point回到第一位從頭部開始除去空格字符
    while (*point == ' ')
    {
        point++;//結(jié)束時(shí)的位置即為新的數(shù)組首
    }
    return point;
}

這里我提一下,可能同學(xué)們和我一樣會(huì)對(duì)空字符和空格字符是不是等價(jià)的產(chǎn)生疑問,以下是兩者的區(qū)別

1.空字符是*’\0’*而空格字符是 ’ ’ ,兩者是不一樣的

2.根據(jù)ASCII,空字符對(duì)應(yīng)的值是0,而空格字符對(duì)應(yīng)的值是32,兩者是不一樣的

C++手動(dòng)去除字符串中的空格和tab

之前遇到一個(gè)問題,要求把一行帶空格和tab的字符串中的空格和tab去掉,看了很多人的博客,但沒看懂,然后自己又想了想,算是解決了,這個(gè)應(yīng)該算比較簡單的了大概效果就是這樣

在這里插入圖片描述

那現(xiàn)在上代碼吧,

#include<iostream>
#include<string>
using namespace std;
int main()
{    string a;
     getline(cin,a);		//讀入整行字符串
     int n=a.length();    	//判斷字符串的長度
     for(int i=0;i<n;i++)    
     {        
     	if(a[i]=='\t'||a[i]==' ') // 找字符串中的空格和tab
     	{           
     	 for(int j=i;j<n-1;j++)  //找到之后將后面的字符串都往前挪一位
     	  {               
     	   a[j]=a[j+1];           
     	  }            
     	  n=n-1;        //總字符串長度減1
     	  i--;        	//從剛才修改改的地方重新開始查找
     	}          
     }   
     for(int i=0;i<n;i++)   
      {        
      	cout<<a[i];    
      }    
      cout<<'\n';    
      system("pause");    
      return 0;
}

如果少了上面那個(gè)i–;就會(huì)出現(xiàn)空格或tab中的任意兩個(gè)放在一起識(shí)別不出來的情況。

就像下面這樣

我在字符之間放了兩個(gè)空格&#xff0c;其他同理

我在字符之間放了兩個(gè)空格,其他同理。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 適合初學(xué)者的C語言數(shù)據(jù)類型的講解

    適合初學(xué)者的C語言數(shù)據(jù)類型的講解

    在 C 語言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類型決定了變量存儲(chǔ)占用的空間,以及如何解釋存儲(chǔ)的位模式。
    2022-04-04
  • C++實(shí)現(xiàn)Dijkstra算法

    C++實(shí)現(xiàn)Dijkstra算法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)Dijkstra算法完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++設(shè)計(jì)類不能被繼承的方法實(shí)例講解

    C++設(shè)計(jì)類不能被繼承的方法實(shí)例講解

    在Java 中定義了關(guān)鍵字final,被final修飾的類不能被繼承,C++中如何實(shí)現(xiàn),下面我們來看一個(gè)例子
    2013-12-12
  • c語言根據(jù)用戶輸入的出生年份并計(jì)算出當(dāng)前年齡

    c語言根據(jù)用戶輸入的出生年份并計(jì)算出當(dāng)前年齡

    這篇文章主要介紹了c語言根據(jù)用戶輸入的出生年份并計(jì)算出當(dāng)前年齡,需要的朋友可以參考下
    2023-03-03
  • C語言小程序 如何判斷三角型類型

    C語言小程序 如何判斷三角型類型

    第一個(gè)判斷三角形的類型,兩個(gè)浮點(diǎn)型數(shù)據(jù)不能直接判斷相等,為了輸入方便一些,自己設(shè)置的精度比較低,10^(-3)
    2013-07-07
  • Qt Quick Designer灰色或者禁用的解決

    Qt Quick Designer灰色或者禁用的解決

    本文主要介紹了Qt Quick Designer灰色或者禁用的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Qt數(shù)據(jù)庫應(yīng)用之通用數(shù)據(jù)庫同步

    Qt數(shù)據(jù)庫應(yīng)用之通用數(shù)據(jù)庫同步

    數(shù)據(jù)庫同步的主要功能是將本地的數(shù)據(jù)庫記錄同步到遠(yuǎn)程的數(shù)據(jù)庫。本文將利用Qt實(shí)現(xiàn)通用數(shù)據(jù)庫同步功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • Qt6 QML實(shí)現(xiàn)DateTimePicker組件的示例代碼

    Qt6 QML實(shí)現(xiàn)DateTimePicker組件的示例代碼

    本文展示了基于Qt6.10實(shí)現(xiàn)的DateTimePicker時(shí)間日期選擇器組件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • 如何用C寫一個(gè)web服務(wù)器之I/O多路復(fù)用

    如何用C寫一個(gè)web服務(wù)器之I/O多路復(fù)用

    本文主要介紹了如何用C寫一個(gè)web服務(wù)器之I/O多路復(fù)用,本次選擇了 I/O 模型的優(yōu)化,因?yàn)樗欠?wù)器的基礎(chǔ),這個(gè)先完成的話,后面的優(yōu)化就可以選擇各個(gè)模塊來進(jìn)行,不必進(jìn)行全局化的改動(dòng)了。
    2021-05-05
  • C語言中獲取文件狀態(tài)的相關(guān)函數(shù)小結(jié)

    C語言中獲取文件狀態(tài)的相關(guān)函數(shù)小結(jié)

    這篇文章主要介紹了C語言中獲取文件狀態(tài)的相關(guān)函數(shù)小結(jié),包括stat()函數(shù)和fstat()函數(shù)以及l(fā)stat()函數(shù)的使用,需要的朋友可以參考下
    2015-09-09

最新評(píng)論

苍山县| 商丘市| 黄骅市| 云阳县| 南召县| 小金县| 望谟县| 嫩江县| 新民市| 广宁县| 日照市| 泰宁县| 武宣县| 上饶市| 彭州市| 泰和县| 慈利县| 福建省| 海伦市| 乌鲁木齐县| 楚雄市| 锦屏县| 宝山区| 尼勒克县| 策勒县| 积石山| 西昌市| 南平市| 突泉县| 水城县| 吕梁市| 铜川市| 福建省| 平凉市| 松阳县| 徐水县| 青田县| 呈贡县| 上犹县| 石楼县| 海宁市|