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樓:匿名使用者 有沒有具體的例子,問題太含糊了。 能否打個比方 如果你想把一個字串變成陣列,你只需要將字串初始化為陣列變數的值即可。例如 char c 10 this is 在c 裡字串在記憶體的儲存方式就是按字串陣列的形式儲存的,所以不用轉換!用cstring的getbuffer函式返回一個存放字元的頭指標,用一個char 來接受他,然後用下標操作就可以了。例... 首先我要想知道 不知道是你抄寫錯了 還是書上寫錯了。區區50 第一 沒有標頭檔案 include因為你用到了isgraph 第二 int numgraph char string 中的count變數沒有初始化,count 是乙個隨機值。本人沒有修改這個地方就是讓你效果,建議你用for迴圈輸出。我希望... 用標抄注襲c庫,strstr str,ab 一直找int count 0 char ptr null do while ptr ptr 0 設定目標字串與原串進行判斷,過程中可以用指標進行比較,若相同,則標記,同時新增出現次數計數量若有相同則加一,之後,再將用來進行比較的指標進行依次往後的比較,最終...c 中字元陣列,如何轉成字串啊
C 如何把字串中的大小寫轉換
c長字串裡如何查詢其中某個字串出現