易截截图软件、单文件、免安装、纯绿色、仅160KB

C字符串反转算法

一个很简洁的算法:
void Reverse(char s[])
{
    for(int i = 0, j = strlen(s) - 1; i < j; ++i, --j) {
        char c = s[i];
        s[i] = s[j];
        s[j] = c;
    }
}
#关于a, b交换其它算法:
    a ^= b;
    b ^= a;
    a ^= b;
一个五种解法的版本:
转自:http://www.cnblogs.com/Mainz/articles/1164602.html
这是网络流传的Microsoft的面试题目之一:“编写反转字符串的程序,要求优化速度、优化空间”。因为最近一直很多关注算法方面的实践和研究,因此对这个问题进行了一些思考,给出了5种实现方法(有两种解法相关性比较大)。
解法一:第一次看到这题目,想到最简单、最直觉的解法就是:遍历字符串,将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循环,即可,于是有了第一个解法:
char* strrev1(const char* str)
{
       int len = strlen(str);
       char* tmp = new char[len + 1];
        strcpy(tmp,str);
       for (int i = 0; i < len/2; ++i)
       {
          char c = tmp[i];
           tmp[i] = tmp[len – i - 1];
           tmp[len – i - 1] = c;
        }
       return tmp;
}
这里是通过数组的下标方式访问字符串的字符,实际上用指针直接操作即可。解法二正是基于此,实现代码为:
char* strrev2(const char* str)
{
       char* tmp = new char[strlen(str) + 1];
        strcpy(tmp,str);
       char* ret = tmp;
       char* p =


相关文档:

extern "C"相关的一些细节问题

作者:石头
extern "C"包含双重含义,其一:被它修饰的目标是“extern”的;其二:被它修饰的目标是“C”的。
1)被extern “C”限定的函数或变量是extern类型的;
    extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函 ......

关于c,c++输出格式控制

1.
printf("%.9lf\n",sum); 
//输出小数点后9位不省去末尾多余的0
2.
printf("%.10g\n",sum);
 //输出小数点后9位不省去末尾多余的0
3.
#include<iomanip>
cout<<setprecision(10)<<sum<<endl;
//输出小数点后9位省去末尾多余的0
4. 
#include<iomanip>
cout.pre ......

keil C 从零学起 教训1

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num;
void main()
{
 TMOD=0x01;
 TH0=(65536-45872)/256;
 TL0=(65536-45872)%256;
 EA=1;
 ET0=1;
 TR0=1;
 P1=0xFF;
 while(1);
}
void T0_time() interrupt 1
{
  ......

又是3只C。。。= =

1.写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。
#include<stdio.h>
int gcd(int,int);
int lcm(int,int);
int gcd(int m,int n)
{
if(m%n==0)
return n;
else
return gcd(n,m%n);
}
int lcm(int m,int n)
{
return m*n/(gc ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号