<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C:一個字符數組里面解析出多個字符串

      一個字符數組里面存放了多個字符串,每個字符串以 ‘\0’。要求把這些有效字符串篩選出來并輸出。

       

      擴展:'\0\0' 表示字符串結束。V2 方法就是實現的這個擴展功能。

       

      #include <stdio.h>
      #include <string.h>
      #include <malloc.h>
      
      
      void printSzNameList(char szNameList[], int length){
          printf("\r\n-------------- start printStringList------------------\r\n");
          char temp[256] = {0}; // 假設每個字符串都不會超過127個字符(留一個位置給'\0')  
          const char *start = szNameList; // 指向當前正在處理的字符串的起始位置  
        
          // 遍歷整個數組直到遇到結尾或超出長度  
          while (start < szNameList + length) {  
              // 找到當前字符串的結尾('\0')  
              const char *end = strchr(start, '\0');  
        
              // 檢查是否找到了結尾且沒有超出數組范圍  
              if (end == NULL || (size_t)(end - szNameList) >= length) {  
                  // 如果沒有找到結尾或超出了數組范圍,則停止  
                  break;  
              }  
        
              // 使用memcpy將字符串復制到臨時變量中(包括結尾的'\0')  
              // 注意:這里我們不需要+1來包含'\0',因為strchr已經返回了指向'\0'的指針  
              // 但為了安全起見,我們仍然使用end - start來計算長度(實際上這包括了'\0')  
              memcpy(temp, start, end - start);  
        
              // 輸出字符串  
              int charLen = strlen(temp);
              if(charLen>0){
                  printf("%s\n", temp);  
              }
        
              // 將臨時變量清零(實際上這一步是多余的,因為temp在每次循環開始時都會被重新使用)  
              // 但為了符合您的要求,我們還是執行它  
              memset(temp, 0, sizeof(temp));  
        
              // 更新start指針到下一個字符串的開始位置  
              start = end + 1;  
          }  
          printf("\r\n------------- end printStringList------------------\r\n");
      }
      
      
      
      void printSzNameListV2(char* ptr){
          printf("\r\n-------------- start printStringListV2------------------\r\n");
             while(ptr && ptr[0])
          {
                  printf("%s\n", ptr);
                  ptr += (strlen(ptr) + 1);    
          }
          printf("\r\n------------- end printStringListV2------------------\r\n");
      }
      
      void test1(){
          printf("========== test1 ============= ");
          char szNameList1[128] = "a11\0a22\0a33\0abcde\0\0\0\0abcdef\0\0";
          //char szNameList2[128] = "a11\0a22\0a33\0abcde\0\0\0\0abcdef\0\0";
          printSzNameList(szNameList1, sizeof(szNameList1));
          printSzNameListV2(szNameList1);
      }
      
      void test2(){
          printf("========== test2 ============= ");
          char szNameList1[128] = "a11\0a22\0a33\0abcde\0\0\0\0abcdef\0\0ghijklmn";
          //char szNameList2[128] = "a11\0a22\0a33\0abcde\0\0\0\0abcdef\0\0";
          printSzNameList(szNameList1, sizeof(szNameList1));
          printSzNameListV2(szNameList1);
      }
      
      void main(){
          printf("hello c 20240816\n");
          test1();
          test2();
      }
      
      // gcc c_demo1.c -std=c11 -o demo1

       

      posted @ 2024-08-16 15:34  He_LiangLiang  閱讀(68)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品日韩在线丰满| 久久亚洲精品中文字幕馆| 国产高潮视频在线观看| 天堂V亚洲国产V第一次| 美腿丝袜亚洲综合第一页| 被拉到野外强要好爽| 亚洲日韩av无码中文字幕美国 | 乱码精品一区二区亚洲区| 日韩大片看一区二区三区| jlzz大jlzz大全免费| 干老熟女干老穴干老女人| 国产日韩精品免费二三氏| 另类专区一区二区三区| 91中文字幕一区二区| 成人福利国产午夜AV免费不卡在线 | 人妻精品动漫h无码| 欧美大bbbb流白水| 亚洲丰满老熟女激情av| 亚洲色无码播放亚洲成av| 蜜臀av久久国产午夜| 日本一区二区三区在线 |观看| 开心激情站一区二区三区| 四虎在线成人免费观看| 国产色a在线观看| 日本中文字幕乱码免费| 91色老久久精品偷偷蜜臀| AV无码免费不卡在线观看| 18av千部影片| 日韩精品一区二区三区四| 正在播放国产真实哭都没用| 国产欧美日韩精品丝袜高跟鞋| 国产在线观看免费观看不卡| 欧美牲交a欧美牲交aⅴ图片| 内射老阿姨1区2区3区4区| 久久久精品2019中文字幕之3| 一区二区在线观看 激情| 国产精品美女AV免费观看| 国产成人精品一区二区三区无码 | 国产成人精品无码专区| 色翁荡息又大又硬又粗又视频图片| 亚洲中文久久久久久精品国产|