#include
char str1[100],str2[100];
char *mystrcat(char *s,char *ct) //字符串连接 { while(*(s++)); s--; while(*ct) *(s++) = *(ct++); return s; }
char *mystrcpy(char *s,char *ct) { while(*(s++)=*ct,*(ct++)); return s; }
int mystrcmp(char *s,char *ct) { while(*s & *ct) { if(*(s++) == *(ct++)) continue; else return *(s-1)-*(ct-1); } return 0; }
int mystrlen(char *s) { int length = 0; while((length++,*s++)); return length-1; }
char *mystrsort(char *s) { int i,j,length = mystrlen(s); char t; for(i = 0;i < length;i++) for(j = 0;j < length-i-1;j++) { if(s[j] > s[j+1]) { t =s[j]; s[j] = s[j+1]; s[j+1] = t; } } return s; }
int mystrfind(char *s,char ch) { int index = 0; while(*s) if(index++,*s == ch) return index; return -1; }
void menu() { int choose = 1; char ch; while(choose != 0) { printf("\n1.字符串连接\n2.拷贝\n3.比较\n4.求字符串长度\n5.对字符串内字符进行排序\n6.查找字符串中某个字符是否存在\n0.退出\n"); scanf("%d",&choose); switch(choose) { case 1:printf("输入2字符串:\n"); scanf("%s%s",str1,str2); mystrcat(str1,str2); printf("连接后的字符串:%s\n",str1); break; case 2:printf("输入要拷贝的字符串:\n"); scanf("%s",str2); mystrcpy(str1,str2); printf("拷贝的字符串:%s\n",str1); break; case 3:printf("输入要比较的2字符串:\n"); scanf("%s%s",str1,str2); printf("%d\n",mystrcmp(str1,str2)); break; case 4: printf("输入要求长度的字符串:\n"); scanf("%s",str1); printf("长度为:%d\n",mystrlen(str1)); break; case 5: printf("输入要求排序的字符串:\n"); scanf("%s",str1); mystrsort(str1); printf("排序后:%s\n",str1); break; case 6:printf("输出字符串:\n"); scanf("%s",str1); printf("输入要查找的字符:\n"); scanf("%c",&ch); scanf("%c",&ch); printf("ch所在位置为%d\n",mystrfind(str1,ch)); } } }
int main() { menu(); return 0; }