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