今天解答了一个网友留在blog上的问题,原贴发布在http://blog.csdn.net/edodo/archive/2004/10/12/133870.aspx?Pending=true
现在将答案转贴到我自己的Blog上面
/** * \title Test strcm * \author AnkyHe * \author [email protected] * \date 20041012 */ #include <iostream> using namespace std; //你写的strcm函数 int strcm(const char *str3,const char *str4) { for(;*str3==*str4;str3++,str4++) { if(!*str3) return 0; } return (*str3-*str4); } //测试用的主函数 int main(int,char**) { const char str1[] = "Hello"; const char str2[] = "Hello"; const char str3[] = "Hello world!"; const char str4[] = "hello"; cout<<strcm(str1,str2)<<endl; cout<<strcm(str1,str3)<<endl; cout<<strcm(str1,str4)<<endl; cout<<'H'-'h'<<endl; return 0; } //测试结果 /*********************************************************************** 0 -32 -32 ***********************************************************************/ //分析 /* 实际上,(!*str3)是不是表示str3当前指向的这个char是不是\0, 也就是说str3是不是已经指向了字符串的结尾的\0字符,如果是,就返回0 *str3-*str4是不是表示两个字符内容的ascii码相减。 */
本文地址:http://com.8s8s.com/it/it26684.htm