1)輸出該字串
2)對於不是首次出現的字元,對其進行過濾,例如 abcdacdef,過濾後為 abcdef
3)對於字元 0-9,a-f,a-f,將其對應的 ascii 碼的低 4 位進行對調,例如將 1011,轉 換為 1101,並將對應的 acsii 碼對應的字元輸出,若為字母,轉換為大寫。
難點:第二問中的過濾,開闢兩個字串指標p,q,p儲存原始字串並輸出,q儲存過濾後的字串,首先將p的首位字元賦值給q,再在兩層for迴圈中,外層i從1到len-1為被比較層,內層j從0到i-1為比較層,若發現p+j的值==p+i的值,說明p+i處是已經重複了的值,退出迴圈,並設定標誌位為0,此處也要注意的是,需寫完整if-else結構,大概是因為其中有break,否則報錯;最後再q新增』\0』;整個輸出即可;
第三問中,構造ascii函式,將單個字元轉換為ascii碼並對調低四位,這個利用轉化為二進位制的方法即可,還得重新在轉化為10進製,並輸出對應的字元,其中int 型對應的字元可直接強制轉化char bb=char(b);同時轉化為大寫,用中的函式toupper();
**:
#include
#include
#include
#include
#include
#include
using namespace std;
void
ascii
(char ch)
,b=0
,i=0
;while
(x>0)
for(
int k=
0;k<
2;k++
)int j=0;
for(i=
7;i>=
0;i--
) cout
char
(b);
if(bb>=
'a'||bb<=
'z')
cout<" "<}int
main()
*(p+len1)
='\0'
; cout
*q=(
char*)
malloc
(sizeof
(char))
;int len2=1;
*(q)=*
(p);
int flag=1;
for(
int i=
1;i)else flag=1;
}if(flag==1)
}*(q+len2)
='\0'
; cout
int i=
0;ireturn0;
}
無冗餘輸入字串 字串陣列 字串
問題 無冗餘 輸入乙個字串 分析 無冗餘 是指儲存的空間不能有冗餘的,比如,要存的陣列長度是10 加上 0 是11 不可以定義陣列為char str 20 這樣還會有8個位元組 還是9個位元組?的空間沒被用,就算是冗餘,因此不能事先分配乙個足夠大的空間,也就不好用陣列實現,然後應該用指標實現 參考的...
無冗餘輸入字串 字串陣列 字串陣列
問題 輸入乙個數字n,接下來輸入n個字串,要求無冗餘地儲存字串 分析 參考到無冗餘地字串輸入 使用動態分配。本題還參考了這個鏈結的內容 1 include include int main char p int ns,i scanf d ns p char malloc sizeof char fo...
C 《讀入字串並過濾掉不合格的字元》
程式說明 讀入乙個字串,當字串以.結尾且後面無任何資料時,停止讀入。讀入後的字串第乙個字母必須是大寫,且其餘字母均為小寫並過濾掉字元之間多餘的空格。執行結果 enter a string the answer to life,the universe,and everything is 42.the...