在編寫C程序時,如果想要打印某個字符串,而字符串的內容比較多,這就涉及到對這個長字符串進行書寫換行,這里的換行并不會對最終的顯示結果進行換行,只是為了閱讀代碼能夠更加的清晰,不至于字符串的內容過長影響代碼的閱讀體驗。
1.長字符串示例
/** * @file test.c * @author Ailson Jack ([email protected]) * blog: www.only2fire.com * @brief * @version 1.0 * @date 2021-09-25 * * @copyright Copyright (c) 2021 * */ #include <stdio.h> int main(void) { char name[] = "Ailson Jack"; int age = 18; printf("Hello, My name is %s.\r\nI am %d years old this year.\r\nNice to meet you.\r\nCan I make friends with you?\r\nI like programming in C very much.\r\n", name, age); while (1); return 0; }
上述代碼需要打印的字符串內容比較長,在代碼閱讀軟件中,可能需要拖動水平方向上的滾動條,才能看清楚字符串的完整內容,這極大的影響了代碼的閱讀效率。下圖是上述代碼的運行結果:
下面提供兩種方法來將長字符串的單行書寫變成多行書寫。
2.書寫長字符串的換行方法
方法一:利用雙引號對長字符串進行換行
在對長字符串進行書寫換行時,可以使用雙引號將長字符串拆分成多個子字符串,編譯器在編譯處理時會自動的拼接這些子字符串,不會影響最終想要的顯示效果,示例代碼如下:
/** * @file test.c * @author Ailson Jack ([email protected]) * blog: www.only2fire.com * @brief * @version 1.0 * @date 2021-09-25 * * @copyright Copyright (c) 2021 * */ #include <stdio.h> int main(void) { char name[] = "Ailson Jack"; int age = 18; printf("Hello, My name is %s.\r\nI am %d years old this year.\r\n" "Nice to meet you.\r\nCan I make friends with you?\r\n" "I like programming in C very much.\r\n", name, age); while (1); return 0; }
上述示例的運行結果如下:
運行結果和長字符串未拆分時的效果一樣。
方法二:利用反斜杠對長字符串進行換行
可以使用反斜杠對長字符串進行拆分,反斜杠后的換行符會被C忽略,所以可以拆分字符串,但是下一行的空格會被計算在內,這反斜杠拆分字符串的一個問題吧,示例代碼如下:
/** * @file test.c * @author Ailson Jack ([email protected]) * blog: www.only2fire.com * @brief * @version 1.0 * @date 2021-09-25 * * @copyright Copyright (c) 2021 * */ #include <stdio.h> int main(void) { char name[] = "Ailson Jack"; int age = 18; printf("Hello, My name is %s.\r\nI am %d years old this year.\r\n\ Nice to meet you.\r\nCan I make friends with you?\r\n\ I like programming in C very much.\r\n", name, age); while (1); return 0; }
上述代碼的運行結果如下圖所示:
運行結果和最終想要的結果還是有差異的,插入了一些不需要的空格,因為反斜杠拆分的字符串會把下一行的空格也計算在內。
3.總結
對長字符串的書寫換行,建議使用雙引號進行拆分,這是最完美的,顯示效果和最終想要的效果是一致的。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/jackailson/article/details/120497034