//两个指针 #include <stdio.h> #include <stdlib.h> char* Reverse(char * s) { char* left=s ; char* right=s ; while(*right) right++; right--; while(right>left) { //swap—>创建临时变量 /*char tmp=*left; *left=*right; *right=tmp;*/ //swap—>异或 *left=*left^*right; *right=*left^*right; *left=*left^*right; left++; right--; } return s ; } void test() { char str[]="hello,world-coming!" ; //注意此处不能用char* str="hello,world-coming!",因为指针存于常量区,不能去改变它 printf( "%s\n",Reverse(str)); } int main() { test(); system( "pause"); return 0; } ////递归 //#include <stdio.h> //#include <stdlib.h> //#include <string.h> // //void Reverse(char* str,int left,int right) //{ // if(left>=right) // return; // // char tmp=str[left]; // str[left]=str[right]; // str[right]=tmp; // // Reverse(str,left+1,right-1); //} //void test() //{ // char str[]="hello,world-coming!"; // int len=strlen(str)-1; // // Reverse(str,0,len); // // printf("%s\n",str); //} //int main() //{ // test(); // system("pause"); // return 0; //} ////数组 //#include <stdio.h> //#include <stdlib.h> //#include <string.h> // //char* Reverse(char* str,int left,int right) //{ // while(left<right) // { // char tmp=str[left]; // str[left]=str[right]; // str[right]=tmp; // // left++; // right--; // } // // return str; //} //void test() //{ // char str[]="hello,world-coming!"; // int len=strlen(str); // // printf("%s\n",Reverse(str,0,sizeof(str)/sizeof(str[0])-2)); //sizeof(str)/sizeof(str[0])是算上‘\0‘的 //} //int main() //{ // test(); // system("pause"); // return 0; //}
结果:
#include <stdio.h> #include <stdlib.h> int SubStr(char dst[],char src[],int start,int len) { char* first=src +start; char* end=src +start+len; int i=0; while(*first && first<end /*&& i<len*/ ) { dst[i]=src [start+i]; first++; i++; } dst[i]=‘\0‘ ; //切记 return i+1; //包括‘\0‘ } //变量较少的实现方法 //int SubStr(char dst[],char src[],int start,int len) //{ // int i=0; // // while(len-- && src[start]!=‘\0‘) // dst[i++]=src[start++]; // // dst[i]=‘\0‘; // // return i+1; //} void test() { char str[]="hello world" ; char target[100]; printf( "%d\n",SubStr(target,str,4,20)); printf( "%s\n",target); } int main() { test(); system( "pause"); return 0; }
结果:
#include <stdio.h> #include <stdlib.h> void test() { int c; while((c=getchar())!=‘\n‘ ) { if(c>=‘A‘ && c<=‘Z‘) c+=32; putchar(c); } printf( "\n"); } int main() { test(); system( "pause"); return 0; }
结果:
#include <stdio.h> #include <stdlib.h> void test() { int c; while((c=getchar())!=EOF ) { if(c>=‘A‘ && c<=‘z‘) c= ‘A‘+‘z‘ -c; putchar(c); } } int main() { test(); system( "pause"); return 0; }
结果:
#include <stdio.h> #include <stdlib.h> #include <assert.h> //把dst当成一个指针 //char* Strcpy(char* dst,const char* src) //{ // assert(src); // int i=0; // // while(*src) // { // dst[i++]=*src++; // } // // dst[i]=‘\0‘; // // return dst; //} //把dst当指针 char* Strcpy(char * dst,const char* src) { assert(src); assert(dst); char* d=dst; while(*src) *d++=*src++; *d= ‘\0‘; return dst; } //库函数的实现方法 //char* Strcpy(char* dst,const char* src) //{ // assert(src); // assert(dst); // char* d=dst; //先保存住dst的首地址,让d移动 // // while((*d++=*src++)!=‘\0‘) // ; // // return dst; //} void test() { char* str="hello world,change the WORLD" ; char dest[100]; printf( "%s\n",Strcpy(dest,str)); } int main() { test(); system( "pause"); return 0; }
结果:
时间: 2024-10-06 08:30:00