break退出循环分析

函数功能: 查找dest字符串中连续不包含在src字符串中的字符数量
1
#include<stdio.h> 2 #include<stdlib.h> 3 4 void strccspn(const char*dest,const char* src,int *count){ 5 char *init_src=(char*)src; 6 int n=0; 7 while(*dest!=*src && *dest!='\0'){ 8 for(;*src!='\0';src++){ 9 printf("enter\n"); 10 if(*dest==*src){ 11 printf("enter2\n"); 12 break; 13 } 14 } 15 if(*dest!=*src && *src=='\0'){ 16 printf("n %d\n" ,++n); 17 *count=*count+1; 18 19 } 20 if(*dest==*src){ 21 break; 22 } 23 src=init_src; 24 dest++; 25 } 26 } 27 28 int main(void){ 29 int *cnt=(int*)malloc(sizeof(int)); 30 char *str1="aabcdfeffg"; 31 char *str2="ghimjbk"; 32 *cnt=0; 33 if(cnt!=NULL){ 34 strccspn(str1,str2,cnt); 35 printf("cnt is :%d\n",*cnt); 36 }else 37 return -1; 38 free(cnt); 39 return 0; 40 }

结论: 

通过屏蔽和打开代码,

20 if(*dest==*src){
21 break;
22 }
获知, break 关键字只能退出本/一层循环(for,while),而不能退出内外多层循环。

 

posted @ 2018-09-06 18:42  谦学的故事  阅读(422)  评论(0编辑  收藏  举报