编写字符串案例
#include <stdio.h> #include <string.h> //1.求取字符串长度 "123456" 面试题 int Strlen(char* pstr) { int len=0;//用户统计字符串的长度 while(*pstr!='\0')//如果字符不是字符串结束标志符\0时,就一直循环 { ++len;//统计长度++ ++pstr;//地址++ } return len; }//strlen(); //2.字符串连接:把字符串2中的内容放到字符串1的后面 面试题 char* Strcat(char* str1,char* str2) { int len=Strlen(str1);//获取字符串1的长度 char* pch=str1+len;//将指针指向字符串1的末尾处 while(*str2!='\0') { *pch++=*str2++; } *pch='\0'; return str1; }//strcat() //3.字符串拷贝 面试题出最多 char* Strcpy(char* str1,char* str2) { char* pch=str1;//指针保存目标字符串的首地址 while(*str2) { *pch++=*str2++;//面试题5-10分 } *pch='\0'; return str1; }//strcpy() //4.字符串比较 int Strcmp(char* str1,char* str2,int n) { int len=0;//保存前面有多少个字符已经比较过了 while(*str1&&*str2) { if(*str1>*str2) return 1; else if(*str1<*str2) return -1; //将两个指针自增,指向下一个字符(前面的字符都相等时) ++str1;//abc ++str2;//abcefg if(++len==n)//相等的字符的个数如果和n相等,就不必再比较,直接返回0 return 0; } if(*str1)//如果字符串1还没到末尾,就说明字串符1比较大,返回1 return 1; else return -1; } int main() { char str[]="abc"; char str1[]="abc"; printf("字符串长度为%d\n",Strlen(str)); printf("字符串长度为%d\n",strlen(str)); //printf("字符串连接后:%s\n",Strcat(str,str1)); //printf("字符串连接后:%s\n",strcat(str,str1)); //printf("字符串拷贝后:%s\n",Strcpy(str,str1)); //printf("字符串拷贝后:%s\n",strcpy(str,str1)); printf("字符串比较后:%d\n",Strcmp(str,str1,3)); return 0; }