C語(yǔ)言如何去除字符串中的空格

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比虹口網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式虹口網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋虹口地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
在C語(yǔ)言中,我們可以使用一些算法來(lái)去除字符串中的空格,本文將介紹兩種常見(jiàn)的方法:一種是使用循環(huán)遍歷字符串,逐個(gè)字符判斷是否為空格;另一種是使用字符串處理函數(shù)strtok,下面我們將詳細(xì)介紹這兩種方法。
1、創(chuàng)建一個(gè)字符數(shù)組,用于存儲(chǔ)去除空格后的字符串。
2、使用循環(huán)遍歷輸入的字符串,逐個(gè)字符判斷是否為空格。
3、如果當(dāng)前字符不是空格,則將其添加到新的字符串中。
4、循環(huán)結(jié)束后,新的字符串即為去除空格后的字符串。
代碼示例:
includeinclude void remove_spaces(char *input, char *output) { int i = 0, j = 0; while (input[i]) { if (input[i] != ' ') { output[j++] = input[i]; } i++; } output[j] = '0'; } int main() { char input[] = "Hello World!"; char output[strlen(input) + 1]; remove_spaces(input, output); printf("去除空格后的字符串: %s ", output); return 0; }
strtok函數(shù)1、需要包含頭文件。
2、定義一個(gè)字符數(shù)組,用于存儲(chǔ)去除空格后的字符串,注意,我們需要預(yù)先分配足夠的內(nèi)存空間,以防止溢出。
3、調(diào)用strtok函數(shù),傳入原始字符串和分隔符(在這里是空格)。strtok函數(shù)會(huì)返回下一個(gè)分割后的子串的指針,如果沒(méi)有更多的子串,返回NULL。
4、在循環(huán)中調(diào)用strtok函數(shù),直到返回NULL為止,每次調(diào)用都會(huì)更新當(dāng)前子串的指針。
5、將當(dāng)前子串復(fù)制到新的字符串中。
6、新的字符串即為去除空格后的字符串,需要注意的是,由于strtok函數(shù)會(huì)修改原始字符串,所以在使用它之前需要先復(fù)制一份原始字符串。
代碼示例:
includeinclude include char *remove_spaces(const char *input) { char *token = strtok(const_cast (input), " "); static char output[1024]; // 需要預(yù)先分配足夠的內(nèi)存空間 memset(output, 0, sizeof(output)); // 防止溢出 while (token != NULL) { strcat(output, token); // 將當(dāng)前子串復(fù)制到新的字符串中 strcat(output, " "); // 在新的字符串中添加分隔符(這里是空格)和空字符('