3-1這個練習(xí)感覺沒什么意義,當(dāng)時我也想到過,思路就是判斷是x的值與v[]數(shù)組中間元素那個值是大了還是小了如果相等則結(jié)束循環(huán),然后在循環(huán)外將結(jié)果返回。
全當(dāng)擴展思路了。
3-2第一個目的挺好實現(xiàn)的,循環(huán)遞增數(shù)組i(for (i - j = 0; t[i] != '\0'; i++))然后判斷當(dāng)前的元素(switch(t[i])) 如果是換行符(case ‘\n’) 則將\n這個換行符拆分放入數(shù)組j中(s[j++] = '\' s[j++] = 'n')“\”是因為\是轉(zhuǎn)義字符會把后面的'轉(zhuǎn)換成普通字符,要想單純的表示“\”就需要將這個單斜杠轉(zhuǎn)義所以就要“\”,后面的“\t”同理。
之后就是將當(dāng)前數(shù)組i中的元素復(fù)制到數(shù)組j中(s[j++] = t[i])。最后給數(shù)組j加上一個'\0'用以表示數(shù)組結(jié)束。
這個有個概念是用單個字符要用‘’單引號,用“”雙引號就是字符串不等價于單個字符。
至于第二個目的了解了第一個目的之后也是挺好實現(xiàn)的,但是當(dāng)時我對于字符和字符串是發(fā)懵的,以至于我知道應(yīng)該怎么去實現(xiàn),但是實際操作卻操作不出來。
依然是將數(shù)組循環(huán)遞增,然后判斷數(shù)組的當(dāng)前元素是否為‘\’如果不是則講當(dāng)前字符復(fù)制到數(shù)組s中,如果是則判斷下一個字符是否是‘n’或者‘t’,如果是則將其對應(yīng)的轉(zhuǎn)義字符加入到數(shù)組s中。最后的defalut部分濕處理跟在反斜杠或的其他字符,因為題目并沒有要求將其他字符轉(zhuǎn)義,所以將其完整輸出,就是兩個反斜杠加一個當(dāng)前字符就好了。
另一個解法的思路是一樣的。但是實現(xiàn)方式不一樣。同樣是遞增數(shù)組i,然后判斷當(dāng)前字符,如果是反斜杠則繼續(xù)向下判斷,是否為‘n’或者‘t’,如果是則執(zhí)行相應(yīng)的操作,如果不是,將其完整輸出。