演習3-3 K&R プログラミング言語C
2010年01月02日
演習3-3
#include <stdio.h> #define MAX 1024 void expand(char s1[], char s2[]); int main(int argc, char *argv[]) { char *str1 = "-c-h-r-b, a-z0-9"; char str2[MAX]; expand(str1, str2); printf("%s => %s\n", str1, str2); return 0; } void expand(char s1[], char s2[]) { int i, j, from, to; for (i = 0, j = 0; s1[i] != '\0'; i++) { if (s1[i] == '-') { from = s1[i-1]; to = s1[i+1]; if (i > 1 && to != '\0' && from < to) { while (from < to) { s2[j++] = ++from; } i++; } else { s2[j++] = s1[i]; } } else { s2[j++] = s1[i]; } } s2[j] = s1[i]; s2[++j] = '\0'; }
実行結果
$ ./ex3-3 -c-h-r-b, a-z0-9 => -cdefghijklmnopqr-b, abcdefghijklmnopqrstuvwxyz0123456789
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726