yydg.net
当前位置:首页 >> 用指针实现字符串比较 >>

用指针实现字符串比较

字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小:返回值大于0,则前串大

int strcmp(char *s1,char * s2); 这里char *s1可以是一个字符串,其实该函数参数取的是字符串的首地址,一直读取到'\0'结束(字符串型的末尾都有一个字符'\0'),这样就把整个字符串读进去了.所以,也可以用字符串指针的形式,指针就是地址,把字符串的首地址赋值给一个指针p,那么p同样可以是此函数的参数char *s1 两种输入都正确

printf("%d\n",&i); 应改为 printf("%d\n",i); 你这样输出的是变量i的地址.去掉地址符才是i的值.希望有所帮助.

#include#include using namespace std; char* trim(char *s); char* leftstring(char *s1, char *s2, int n); int index(char *s1, char *s2); int main(){ char str1[]="i'm student. ",str2[]="student",str3[4]; int n; cout trim(str1); cout leftstring(str1,str3,3); cout

代码没什么问题,不过粗心而已.是个最常见最容易犯的错误.if(i==0) //printf("数组b=数组a\n");再者别用if,if if用if, else if , else 就行了

while ( *p==*q) p++,q++;while这里错了.while ( *p==*q){ p++;q++;}记得在最后加一个return 0

int StrCmp(char *a, char *b) { for (;; ++a, ++b) { if (*a { return -1; // 任意字符小于则小于 } else if (*a > *b) { return 1; // 任意字符大于则大于 } else if (*a == 0) { return 0; // 相等且都为0,量字符串同时结束,相等;否则检查下一个字符. } } }

#include ///字符串是不方便直接return的,///常用方法是输入串和输出串都传入函数,///在函数里给输出串赋值.void go(const char* input, const char* output){ int i = 0; if (input && output) { while (input[i]) { if (input[i] >= 'a' && input[i] 评论0 0 0

int strcmp(char *p1, char *p2){ while (*p1 && *p2) { if (*p1 > *p2) return 1; else if (*p1 评论0 0 0

void strcpy(char *s1,char *s2){ for(;*s1!='\0';s1++,s2++) if(*s1!=*s2) break;return(*s1-*s2);}

网站首页 | 网站地图
All rights reserved Powered by www.yydg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com