c如何把字串清空,如何清空string陣列c

2022-02-04 02:34:35 字數 4885 閱讀 1375

1樓:問明

方法一:

#include

#include

using namespace std;

void deletestr(const char *str, const char* sub_str, char *result);

int main()

char str[100],sub[100];

cin>>str;

cin>>sub;

char result;

deletestr(str,sub,&result);

return 0;

void deletestr(const char *str, const char* sub_str, char *result)

int sublen = 0; //獲得子串的長度

const char *t = sub_str;

while(*t++ != '\0')

sublen++;

int pos = 0;

int pp = 0;

int repos = 0; // 結果子串的索引

while(*(str + pos) != '\0')

char t = *(str + pos);

if(t == *(sub_str + pp)) // 重複子串起始位置

*(result + repos) = t;

repos++;

if(pp < sublen - 1) // 還未完全重複

pp++;

else if(pp == sublen - 1) // 完全重複了

pp = 0;

repos -= sublen; // 回溯下標位置

else{ // 不是一樣的字元

*(result + repos) = t;

repos++;

pos++;

*(result + repos) = '\0';

cout<方法二:用stl

#include

#include

using namespace std;

int main()

string str,sub;

cin>>str;

cin>>sub;

int n=sub.size();

deletesub(str,sub,n);

return 0;

int m,flag=0,num=0;//num是子串出現的次數

while(flag==0)

m=str.find(sub);

if(m<0)

flag=1;

else

str.erase(m,n);//刪除子串

num++;

chara使用方法:

c語言中char用於定義字元型別變數或字元指標變數,例如「chara;」則定義了變數a是字元型別,「char*a;」則定義了變數a是字元指標型別。

char是c語言整型資料中比較古怪的乙個,其它的如int/long/short等不指定signed/unsigned時都預設是signed,但char在標準中不指定為signed/unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的。

關於char還有乙個特殊的語言就是char*,它在c語言中有專門的語義,既不同於signedchar*,也不同於unsignedchar*,專門用於指以'\0'為結束的字串。

c語言所有基本資料型別:

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。

char:字元型型別資料,屬於整型資料的一種。

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。

float:單精度浮點型資料,屬於浮點資料的一種。

double:雙精度浮點型資料,屬於浮點資料的一種。

2樓:匿名使用者

c++ 陣列清空的方法為:

char a[80];

1、memset() 給指定記憶體置相應的值#include //引用相關標頭檔案

memset( a, 0, sizeof(a) ); //把從a開始的80個字元全置為0

2、迴圈遍歷陣列,逐位清0

for( int i=0;i

3、所謂的字串清空:

strcpy(a, ""); 本句相當於 a[0]=0 ;

這裡只是完成了陣列a的首位址置0,0是字串結束符'\0'的ascii值,這樣賦值後,只是表示乙個空字串,而剩餘的陣列位置上的資料還是原來儲存的內容不會有變化的。所有的字串操作函式,都會遇0而止的,所以,使用者看不到後面位置上的垃圾資料。

3樓:匿名使用者

memset(a,0,sizeof(a)); 就用這個,等於是給陣列初始化。

4樓:匿名使用者

建議你用指標定義,並進行動態分配

例如:char *a=new char(80);

然後delete [ ]a;

釋放空間,就行;

至於字串清空,建議你用 a=;

5樓:

可以用系統函式

memset(a,0,sizeof(a));

標頭檔案#include

strcpy(a," ");這樣可以的,也可以將它置空

6樓:匿名使用者

只要這一句就夠了:

a[0]=0;

補充:聽哥的,錯不了。你去搜尋下c字串的原理就知道了。

7樓:黯閣梧桐一葉

memset(a,0,sizeof(a));

如何清空string陣列c++

8樓:

寫一句讓string的物件等於空字串的語句就行了。如:

//#include "stdafx.h"//if the vc++6.0, with this line.

#include

#include

using namespace std;

int main(void)

9樓:匿名使用者

str.clear ( );

c++中如何將乙個字串物件置空

10樓:我是百人敵

char* p; ....; p = (void*)0;即可。

如果是動態分配的記憶體(使用malloc 或 new),置空之前要將記憶體釋放(free 或 delete)

11樓:匿名使用者

string str=" ";

c++中怎麼刪掉字串中的字元

12樓:

辦法很多,舉其一例:

#include

#include

using namespace std;

int main(void)

13樓:匿名使用者

c++ 的做法 :

#include

#include

#include

using namespace std;

template

struct eq

bool operator()(t & c_)t c;

};int main()

14樓:總愛bb的

貌似string類中有類似的方法剔除某字串,不過我很久不用c++了忘記了=。=

給你些個演算法吧:

//原來儲存的字串

string _strbuff="abceccecdf";

//處理後儲存的字串

string _str="";

for(int i=0;i<_strbuff.lengh;++i)else }

可能會有語法錯誤我這沒有編譯器,大概是這個意思拿去看看吧

15樓:匿名使用者

#include

using namespace std;

void remove(char str,char remove)p++;

}str[t]='\0';

} void main()

c++怎麼刪去字串中的一段?

16樓:匿名使用者

字串刪除其中的一段:

a:刪除指定的範圍(比如,從m到n個字元)void  strdelete(char * str,int n_begin,int n_end,int nstrlenth)

直接用string的erase()函式也行。

如何在c++的字串中刪除某個字串

17樓:匿名使用者

利用c的strstr函式查詢字元

bai串,然後strcpy拷貝覆du蓋它。

#include

int main()

//這裡只刪除了一處匹配的字串,如果有多處匹配,則迴圈處理。

18樓:匿名使用者

#include

void delete(char ch,int n)

int main()

19樓:匿名使用者

有沒有具體的例子,問題太含糊了。 能否打個比方

c 中字元陣列,如何轉成字串啊

如果你想把一個字串變成陣列,你只需要將字串初始化為陣列變數的值即可。例如 char c 10 this is 在c 裡字串在記憶體的儲存方式就是按字串陣列的形式儲存的,所以不用轉換!用cstring的getbuffer函式返回一個存放字元的頭指標,用一個char 來接受他,然後用下標操作就可以了。例...

C 如何把字串中的大小寫轉換

首先我要想知道 不知道是你抄寫錯了 還是書上寫錯了。區區50 第一 沒有標頭檔案 include因為你用到了isgraph 第二 int numgraph char string 中的count變數沒有初始化,count 是乙個隨機值。本人沒有修改這個地方就是讓你效果,建議你用for迴圈輸出。我希望...

c長字串裡如何查詢其中某個字串出現

用標抄注襲c庫,strstr str,ab 一直找int count 0 char ptr null do while ptr ptr 0 設定目標字串與原串進行判斷,過程中可以用指標進行比較,若相同,則標記,同時新增出現次數計數量若有相同則加一,之後,再將用來進行比較的指標進行依次往後的比較,最終...