C 兩個字串相加

2021-08-11 15:13:01 字數 1006 閱讀 2236

題意:

given two binary strings, return their sum (also a binary string).

for example,

a = "11"

b = "1"

return "100".

思路:

思路:對於兩個string a,b從後往前取值,若取值為空則賦值為0.設定進製符號flag;

若a[i]+b[i]+flag == 3 則 c[i]=1 flag =1

;若a[i]+b[i]+flag == 2 則 c[i]=0 flag =1;

若a[i]+b[i]+flag == 1 則 c[i]=1 flag =0

;若a[i]+b[i]+flag == 0 則 c[i]=0 flag =0;

**如下:

string addbinary(string a, string b) 

else

if(lenastring temp(lenc-lena,'0');

a=temp+a;

}// 判斷是否需要進製

for(int i=lenc-1;i>=0;--i)

else

if(a[i]-'0'+b[i]-'0'+flag==2)

else

if(a[i]-'0'+b[i]-'0'+flag==1)

else

if(a[i]-'0'+b[i]-'0'+flag==0)

}//如果溢位的話

if((a[0]-'0'+b[0]-'0'+flag)>=2)

return c;

}

本題,使得對於字串的操作更加熟練。

對於再字串的前、後新增字元的時候,可以將字元轉換成字串,再使用」+」號,新增上去:

if((a[0]-'0'+b[0]-'0'+flag)>=2)

兩個字串相加 非負數

題目 兩個字串相加 非負數 分析 從兩個字串的末尾位對應為開始相加,每次都是對應為加上上一次的進製 第一次是0,之後每滿十,進製位置1 需要注意的是,當短串完了不能之間將長串直接拷下來,原因是可能有極端的情況一直需要進製 如9999 1 另外,最後還要判斷是否有進製。string add strin...

連線兩個字串

include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...

交換兩個字串

交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...