posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          幾個C的字符串操作代碼

          Posted on 2007-07-08 21:05 ZelluX 閱讀(502) 評論(2)  編輯  收藏 所屬分類: C/C++
          很簡短,有點trick的感覺,就像小學里寫的那些(n-1) mod x + 1。進了大學后很少寫類似風格的代碼了,這些用在java項目中就要因為可讀性被bs了。
          1. 計算串長度 strlen(a)
          for (i = 0; a[i] != 0; i++); return i;

          2. 復制 strcpy(a, b)
          for (i = 0; (a[i] = b[i]) != 0; i++);

          3. 比較 strcmp(a, b)
          for (i = 0; a[i] == b[i]; i++)
              if (a[i] == 0) return 0;
          return a[i] - b[i];
          注意適用于不同長度的字符串

          指針版本
          1. strlen(a)
          b = a; while (*b++); return b - a - 1;

          2. strcpy(a, b)
          while (*a++ = *b++);

          3. strcmp(a, b)
          while (*a++ = *b++)
              if (*(a-1) == 0) return 0;
          return *(a-1) - *(b-1);




          評論

          # re: 幾個C的字符串操作代碼  回復  更多評論   

          2007-07-09 16:37 by BZBJ
          為什么我覺得應該是 "\0" 而不是 "0"

          # re: 幾個C的字符串操作代碼  回復  更多評論   

          2007-07-09 20:02 by ZelluX
          是'\0'吧?
          '\0'和0不是一樣的嗎?
          主站蜘蛛池模板: 嘉善县| 临颍县| 伊通| 赤峰市| 布拖县| 福建省| 乐昌市| 云龙县| 无锡市| 邓州市| 德庆县| 铜川市| 湟源县| 陆良县| 阿克| 仁布县| 芜湖市| 乌审旗| 聂拉木县| 开远市| 耒阳市| 启东市| 循化| 潼南县| 莱阳市| 新和县| 辰溪县| 金坛市| 宽甸| 富阳市| 崇左市| 乌鲁木齐县| 临海市| 深圳市| 休宁县| 黄冈市| 通江县| 彝良县| 合作市| 景泰县| 林口县|