C語言提高19 字串模型 兩頭堵模型

2021-07-08 13:41:30 字數 1768 閱讀 9432

strlen所作的僅僅是乙個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃瞄,直到碰到第乙個字串結束符'\0'為止,然後返回計數器值(長度不包含「\0」)

isspace 若引數c為空格字元,則返回true,否則返回null   此為巨集定義,非真正函式

在mian函式裡實現求非空格字串長度

void main()

while (isspace(p[j]) && p[j] != '\0')

return;

}

進行函式封裝:

//求非空格字串長度

void getcount(char*str/*in*/,int*pcount)

int i = 0;

int j = strlen(p) - 1;

while (isspace(p[i]) && p[i] != '\0')

while (isspace(p[j]) && p[j] != '\0')

count = j - i + 1;//7-1+1

*pcount = count;

return;

}

去除字串的前後空格:

int trimspace(char*str/*in*/,char*newstr/*in*/)

int i = 0;

int j = strlen(p) - 1;

while (isspace(p[i]) && p[i] != '\0')

while (isspace(p[j]) && p[j] != '\0')

count = j - i + 1;//7-1+1

strncpy(newstr,str+i,count);//從str的第i個開始 拷貝count個字元

//newstr後面手工補0

newstr[count] = '\0';

return 1;

}void main()

; trimspace(p, buf);

printf("buf:%s\n",buf);

printf("hehhehe");

system("pause");

return;

}

去除字串的前後空格

//這樣做的前提是str所指向的記憶體空間必須可以被修改才行:

int trimspace02(char*str/*in*/)

int i = 0;

int j = strlen(p) - 1;

while (isspace(p[i]) && p[i] != '\0')

while (isspace(p[j]) && p[j] != '\0')

count = j - i + 1;//7-1+1

strncpy(str, str + i, count);//從str的第i個開始 拷貝count個字元

//newstr後面手工補0

str[count] = '\0';

return 1;

}void main()

C語言提高20 字串反轉 兩頭堵的變形

方法1 指標 在主函式裡實現 void main while p1 方法2 遞迴逆序 3個點 01 通過遞迴的方式 逆向列印 include include include include 掌握遞迴 引數入棧模型 與 函式巢狀呼叫返回流程 關鍵在於理解返回流程 void inverse02 char...

C語言的專案開發模型(1) 字串兩頭堵

得到字串的長度,然後 1得到的是陣列的最大座標位置 j strlen inmybuff 1 指標從輸入字串的前面向後判斷,找到不是空格的地方 while isspace inmybuff i inmybuff i 0 指標從後往前尋找,找到不是空格的地方 while isspace inmybuff...

day4 字串的兩頭堵模型

方法一 int main01 while isspace p j p j 0 count j i 1 printf count d n count printf hello world n system pause return 0 求非空格的字串長度 方法二 api函式 void getcount...