很簡短,有點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);
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);