青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

asm, c, c++ are my all
-- Core In Computer
posts - 139,  comments - 123,  trackbacks - 0

/********************************************\
|????歡迎轉(zhuǎn)載, 但請(qǐng)保留作者姓名和原文鏈接, 祝您進(jìn)步并共勉!???? |
\********************************************/


C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!

作者: Jerry Cat
時(shí)間: 2006/04/22
鏈接: http://m.shnenglu.com/jerysun0818/archive/2006/04/22/6086.aspx


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//Fuction: BOOL revstr(char *str);
//Purpose: reverse a string
//Author:? Jerry
//Time:???? 04/22/2006
//Feature: This version is suitable for both sring and char array

char* revstr(char *str)
{
??? int nCnt = 0, len = strlen(str);
??? char* tmpstr = (char*) malloc(len+1);
??? if???? (tmpstr) strcpy(tmpstr, str);
??? else { printf("\n malloc error!\n"); return 0; }
??? for(--len, tmpstr = tmpstr + len; len > 0; *str++ = *tmpstr--, --len, ++nCnt);
??? *str = *tmpstr; //C/C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
??? free(tmpstr);
??? return str - nCnt;
}

上面方法不好, 繁雜且易出錯(cuò), 經(jīng)沐楓兄指點(diǎn), 下面?zhèn)z是改進(jìn)版^_^
char* revstr(char *str)
{
??? char c, *head = str, *tail = str + strlen(str) -1;
??? for(; head < tail; c = *head, *head++ = *tail, *tail-- = c);
??? return str;
}

char* revstr(char *str)
{?? //省去一變量, 時(shí)間換空間法
??? char *head = str, *tail = str + strlen(str) -1;
??? for(; head < tail; *head=*head ^ *tail, *tail=*head ^ *tail, *head=*head++ ^ *tail--);
??? return str;
}
?

posted on 2006-04-22 22:20 Jerry Cat 閱讀(1147) 評(píng)論(7)  編輯 收藏 引用

FeedBack:
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-24 09:23 | 沐楓
代碼風(fēng)格應(yīng)該受到批評(píng)。
就這么幾行的程序,就讓人看得難以理解--特別是那個(gè)恐怖的for.
而且就本程序來(lái)說(shuō),沒(méi)必要另外分配一個(gè)內(nèi)存。

BTW: //Feature: This version is suitable for both sring and array
這個(gè)更離譜了,string還好說(shuō),array如何能用呢?  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-24 09:58 | 沐楓
char* revstr(char* str){
  char* head = str;
  char* tail = head + strlen(head) -1;
  while(head < tail) {
    char c = *head;
    *head++ = *tail;
    *tail-- = c;
  }
  return str;
}  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-24 13:15 | oosky
@沐楓
這個(gè)好多了。
  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-25 00:51 | Jerry Cat
沐楓兄說(shuō)得對(duì):
1. 沒(méi)必要另外分配一個(gè)內(nèi)存了.
2. "array如何能用呢?", 忘加一定語(yǔ):叫字符數(shù)組:)
3. 在你基礎(chǔ)上又改了下, BTW, 都是面試惹的禍(你指風(fēng)格不太好, 反正看它要求啦, 有的面官就要你用兩行最多三行寫(xiě)完成某一功能的函數(shù), 這種情況不要太多了:)

char* revstr(char *str)
{
char c, *head = str, *tail = str + strlen(str) -1;
for(; head < tail; c = *head, *head++ = *tail, *tail-- = c);
return str;
}

char* revstr(char *str)
{ //省去一變量, 時(shí)間換空間法
char *head = str, *tail = str + strlen(str) -1;
for(; head < tail; *head=*head ^ *tail, *tail=*head ^ *tail, *head=*head++ ^ *tail--);
return str;
}
  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-25 09:10 | 沐楓
估計(jì)遇到這樣的for語(yǔ)句,在某些大公司是會(huì)被警告直至走人的。
干嘛非要放到括號(hào)里完成呢?

另外,字符數(shù)組你這程序是不能用的。
我給你一個(gè)測(cè)試用例:
char arr[5] = {'H', 'e', 'l', 'l', 'o'};

----------
BTW,你如果要指定是C++,那么,C++中已經(jīng)有reverse函數(shù)(頭文件algorithm):
reverse(str, str+strlen(str)-1);
而交換變量,也有swap函數(shù)(頭文件algorithm):
swap(*head++, *tail--);  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船!
2006-04-25 18:31 | Jerry Cat
1. "估計(jì)遇到這樣的for語(yǔ)句,在某些大公司是會(huì)被警告直至走人的。
干嘛非要放到括號(hào)里完成呢?"
---------------------------
答: 面試惹的禍, 有的面官就要你用兩行最多三行寫(xiě)完成某一功能的函數(shù). 咱又不是不會(huì)用所謂"好"風(fēng)格的for和while. 它需要啥咱就給它啥, 咱要工作! 它不需警告, 只要它皺眉頭, 咱就改, 咱還不是給逼的嗎?

2. "另外,字符數(shù)組你這程序是不能用的。
我給你一個(gè)測(cè)試用例:
char arr[5] = {'H', 'e', 'l', 'l', 'o'};
------------------------------------------
答: 提的好, 它沒(méi)有第六個(gè)字節(jié)放'\0'! 我指的是:
char arr[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char arr[] = "Hello";
這樣的"串"形字符數(shù)組, anyway you're a careful guy!

3. "BTW,你如果要指定是C++,那么,C++中已經(jīng)有reverse函數(shù)(頭文件algorithm):
reverse(str, str+strlen(str)-1);
而交換變量,也有swap函數(shù)(頭文件algorithm):
swap(*head++, *tail--);
-----------------------------------------
答: 哈, 我沒(méi)指?jìng)鹘y(tǒng)C++, 或STL式C++, 看看頭文件就知道了:)
在C中就有標(biāo)準(zhǔn)庫(kù)函數(shù): char* strrev(char* str);
可以直接調(diào)用滴, 我只是練手^_^ (BTW, 現(xiàn)在嵌入式開(kāi)發(fā)可以用C++(以前只許ams和C哦), 但還不允許C++標(biāo)準(zhǔn)庫(kù)STL), 不知貴公司的情況了:)

4. 歡迎沐楓兄多指教, 謝了!  回復(fù)  更多評(píng)論
  
# re: C與C++編程一頭一尾最重要, 無(wú)數(shù)英雄折腰, 多少豪杰翻船![未登錄](méi)
2011-06-03 15:20 | z
"*tail = str + strlen(str) -1;"

char* tail = str;
while(*tail) ++tail;
--tail;

//remove the reference to strlen() :)  回復(fù)  更多評(píng)論
  

只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理



<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆檔案

最新隨筆

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品中文字幕一区二区三区| 一区二区欧美激情| 欧美14一18处毛片| 久久久97精品| 久久免费国产| 欧美大片91| 国产精品video| 国产精品一区二区三区久久久| 国产精品区二区三区日本| 国产欧美日韩精品丝袜高跟鞋| 国产精品美女黄网| 精品福利电影| 一区二区免费在线视频| 性做久久久久久久久| 久久久综合网| 亚洲精品午夜| 久久精品盗摄| 欧美色网在线| 伊人激情综合| 亚洲一区二区三区在线| 久久久夜精品| 亚洲伦理在线| 久久九九久久九九| 欧美激情日韩| 国模一区二区三区| 亚洲午夜精品17c| 麻豆精品精华液| 亚洲深夜福利| 免费在线日韩av| 国产女精品视频网站免费 | 欧美亚州韩日在线看免费版国语版| 国产精品久久777777毛茸茸| 禁断一区二区三区在线| 亚洲无限乱码一二三四麻| 巨乳诱惑日韩免费av| 999亚洲国产精| 久久久www成人免费无遮挡大片| 欧美视频一区二区三区| 最新成人在线| 免费成人高清| 欧美中文在线免费| 欧美性视频网站| 欧美xxx在线观看| 亚洲久久一区| 久久黄色网页| 国产麻豆视频精品| 国产精品99久久久久久白浆小说| 久久夜色精品国产| 亚洲欧美日韩综合aⅴ视频| 欧美极品一区| 99pao成人国产永久免费视频| 久久性色av| 欧美一区二区视频免费观看| 欧美视频在线一区二区三区| 亚洲精品一区二| 欧美激情一区二区三区在线| 久久久亚洲成人| 精品成人一区二区三区| 久久婷婷国产综合精品青草| 欧美一区二区三区精品电影| 国产精品一区三区| 欧美一区二区视频网站| 亚洲与欧洲av电影| 国产日本欧美视频| 久久久久.com| 久久久一本精品99久久精品66| 狠狠色噜噜狠狠色综合久| 久久久久久9999| 久久精品主播| 亚洲麻豆av| 一本大道久久a久久精二百| 国产精品大片| 久久精品99国产精品| 久久精品30| 亚洲欧洲精品成人久久奇米网| 亚洲高清成人| 免费在线亚洲欧美| av不卡免费看| 99精品国产一区二区青青牛奶| 欧美韩日高清| 欧美日韩www| 亚洲永久免费精品| 欧美在线视频免费播放| 亚洲国产精品久久久久婷婷884| 欧美国产专区| 国产精品v一区二区三区| 欧美一区二区三区四区高清| 久久九九国产| 宅男噜噜噜66一区二区66| 午夜精品国产更新| 亚洲精品久久久久久久久| av成人国产| 在线观看欧美| 日韩一级网站| 国内精品久久久久影院优| 亚洲激情av在线| 国产午夜精品理论片a级探花 | 欧美日韩在线播放| 久久精品系列| 欧美久久影院| 久久夜精品va视频免费观看| 欧美日韩国产精品自在自线| 韩国成人福利片在线播放| 日韩亚洲在线观看| 欧美一区二区高清| av不卡在线观看| 久久久精品日韩| 亚洲午夜av在线| 欧美成人情趣视频| 久久久99国产精品免费| 欧美日韩999| 欧美国产高清| 狠狠v欧美v日韩v亚洲ⅴ| 一区二区三区国产精华| 91久久久国产精品| 久久视频在线免费观看| 欧美一区二区三区喷汁尤物| 欧美日韩国产成人在线观看 | 一区二区三区成人| 亚洲欧洲日本mm| 久久精品99国产精品日本| 午夜精品偷拍| 欧美午夜电影一区| 亚洲精品免费在线播放| 亚洲经典三级| 免播放器亚洲一区| 老司机精品视频网站| 国内精品久久久久影院优| 亚洲欧美日韩国产一区| 亚洲欧美国产日韩天堂区| 欧美日韩在线视频首页| 日韩视频免费在线观看| 亚洲伦理自拍| 欧美另类视频| 亚洲毛片在线| 亚洲一二三区在线| 国产精品久久久久久av下载红粉| aⅴ色国产欧美| 一区二区三区四区在线| 欧美日韩精品一区二区天天拍小说 | 久久综合网络一区二区| 国产日韩精品一区二区三区在线 | 亚洲一区成人| 欧美日韩成人在线视频| 亚洲毛片视频| 亚洲欧美综合v| 国产婷婷色一区二区三区四区| 亚洲午夜一区二区三区| 欧美在线观看你懂的| 国产日韩亚洲欧美综合| 欧美亚洲一区二区在线观看| 久久米奇亚洲| 亚洲人精品午夜| 国产精品a级| 欧美一区二区三区免费观看| 久久久亚洲欧洲日产国码αv | 亚洲少妇一区| 久久精品免费观看| 在线视频日韩| 一本色道久久综合亚洲精品按摩| 欧美激情一区二区三区蜜桃视频 | 国产欧美日韩综合| 久久福利电影| 欧美激情一区二区三区| 亚洲午夜精品福利| 国产一区二区三区网站 | 麻豆91精品| 亚洲剧情一区二区| 久久九九热免费视频| 日韩一区二区免费看| 国产亚洲成av人片在线观看桃| 噜噜噜91成人网| 亚洲夜晚福利在线观看| 欧美顶级少妇做爰| 性8sex亚洲区入口| 亚洲日韩视频| 国产一区二区三区四区在线观看| 欧美承认网站| 欧美一区视频| 一本久久综合| 欧美激情国产精品| 久久国产精品一区二区| 夜夜夜精品看看| 亚洲大片av| 国产一区二区三区视频在线观看| 欧美日韩成人激情| 久久亚洲风情| 亚洲欧美偷拍卡通变态| 91久久精品国产91久久| 久久香蕉国产线看观看av| 亚洲专区一二三| 日韩亚洲欧美综合| 亚洲第一精品夜夜躁人人躁| 国产精品久久久久久久久久久久| 欧美va天堂在线| 久久精品人人做人人爽电影蜜月| 国产精品99久久久久久久vr| 欧美激情一区二区三区成人| 久久综合色一综合色88| 欧美一区二区三区久久精品|