- 666 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:30:32 ]
- >>610
#include <stdio.h> #include <string.h> /*1)*/ int getUpper(){ int r=getchar(); return 'a'<=r && r<='z' ? (r-'a'+'A') : r; } /*2)*/ void showReverse(char *s){ int i; for(i=strlen(s)-1; i>=0; putchar(s[i--])); putchar('\n'); } /*3)*/ void letReverse(char *P, char *R){ int i,k; for(k=0, i=strlen(P)-1; i>=0; R[k++]=P[i--]); R[k]='\0';} /*4)*/ int isCircular(char *s){ char *r=(char*)malloc(sizeof(char)*(strlen(s)+1)); int ret; letReverse(s,r); ret=strcmp(s,r)==0; free(r); return ret; } /*5)*/ static int isCircular2s(char *s1, char *s2){ if(s1>=s2) return 1; else{if(*s1==*s2) return isCircular2s(s1+1, s2-1); else return 0; } } int isCircular2(char *s){ return isCircular2s(s,s+strlen(s)-1); } // なんか色々関数を利用するプログラム void checkCircular(char *s){ printf("%s is %scircular string.\n", s, isCircular(s) ? " " : "not "); int main(void){ char rev[10]; printf("Hit keyboard: ");fflush(stdout); printf("getUpper() is .. %c\n", getUpper()); showReverse("abcde"); letReverse("a1b2c3", rev); printf("reverse a1b2c3 = %s\n", rev); checkCircular("abcba"); checkCircular("12321"); printf("12321 is %scircular string.\n", isCircular2("123321") ? " " : "not "); }
|

|