字串反轉 大數相加 IP分類

2021-06-29 13:14:54 字數 2167 閱讀 4507

c語言基礎隨著工作,慢慢遺忘的一乾二淨,簡單實現,不考慮效率,留作備忘。

一、反轉

char *str_reserve11(char *src)

return src;

}char *str_reserve22(char *src, int len)

#endif

while(start < end)

return src;

二、大數相加

注意:1、反轉, 2、判斷是否進製,3、注意迴圈哪個先到界,4、反序輸出

void dashu_add(char a[n], char b[n], char c[n+1])			

if ('\0' != pb[i])

c[i] = pa[i] + pb[i] + cflag;

if (10 <= c[i])

else

c[i] = c[i] + '0';

} if (1 == cflag)

c[i] = 1;

pc = str_reserve11(c);

printf("c=>%s<\n", c);

return;

}

p.s:另一種不呼叫反序函式的方法。

void dashu_add22(char a[n], char b[n], char c[n+1])

, tmpb[n] = , tmpc[n+1] = ;

int ialen = 0, iblen = 0, iclen = 0, imax = 0;

ialen = strlen(a);

iblen = strlen(b);

imax = ((ialen > iblen) ? ialen : iblen);

for (i = 0; i < ialen; i++)

for (i = 0; i < iblen; i++)

for (i = 0; i < imax; i++)

else

tmpc[i] = tmpc[i] + '0'; }

if (1 == cflag)

tmpc[i] = 1;

iclen = strlen(tmpc);

for (i = 0; i < iclen; i++)

printf("c=>%s<\n", c);

return;

}

三、判斷ip位址範圍

一、主要是檢查,下邊**檢查還是不夠足夠嚴格,但一般可用。

typedef enum 

w; //輸入ip, 並判斷型別

#define maxlen 15

#define minlen 7

w m(char *s)

for(iloop = 0; iloop < iiplen; iloop++)

if ('.' == s[iloop])

}if (3 != idotcount)

sscanf(s, %d.%d.%d.%d.%c, &ipart1, &ipart2, &ipart3, &ipart4,&cendchar);

if ( (0 >= ipart1) || (255 <= ipart1) || \

(0 > ipart2) || (255 <= ipart2) || \

(0 > ipart3) || (255 <= ipart3) || \

(0 >= ipart4) || (255 <= ipart4) )

if ( (0 < ipart1) && (127 >= ipart1) )

else if ( (127 < ipart1) && (191 >= ipart1) )

else if( (191 < ipart1) && (223 >= ipart1) )

else if ( (223 < ipart1) && (239 >= ipart1) )

else if ( (239 < ipart1) && (247 >= ipart1) )

else

return eret;

}

字串 大數相加

題目 定義兩個一維字元陣列a 20 b 20 表示兩個大正整數,定義c 50 表示a b的結果。輸入大數a和b的位數m n 3 m n 20 以字串形式分別輸入m位大數a和n位大數b,完成a b的計算,並以字元型資料儲存計算結果。因為是 大數 所以用int long long long都不行,需運用...

字串相加, 大數加法

題目描述 給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。思路...

字串相加

題目 給定兩個字串形式的非負整數num1和num2,計算它們的和。注意 num1和num2的長度都小於 5100.num1和num2都只包含數字0 9.num1和num2都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式 分析 注意幾個方面 1 迴...