V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fliar  ›  全部回复第 2 页 / 共 3 页
回复总数  46
1  2  3  
2015-04-12 21:09:55 +08:00
回复了 aurorax 创建的主题 程序员 转行程序员很难么?
@aurorax 太年轻不认得赵本山吧:)
2015-04-10 18:04:23 +08:00
回复了 aurorax 创建的主题 程序员 转行程序员很难么?
六級木匠 相當於中級知識分子
2015-04-07 10:27:00 +08:00
回复了 mocodo 创建的主题 C C/C++猿们,你们的花括号{}都习惯怎么写?
習慣是另起一行,上下對齊
這樣看嵌套關係時不太會看走眼
2015-04-03 09:59:30 +08:00
回复了 AmberBlack 创建的主题 程序员 求助攻一款笔记本。
不要發熱,那可能你要考慮輕薄本+外接顯卡
2015-04-02 18:38:14 +08:00
回复了 AmberBlack 创建的主题 程序员 求助攻一款笔记本。
联想y系列?
2015-04-02 18:33:15 +08:00
回复了 tuoxie007 创建的主题 程序员 刚花了一分钟面试完一个 iOS 工程师
老实说,墙外呆久了翻墙水平是低很多的,以前过年回家还鼓捣鼓捣goagent,现在懒了不想动,就默默地开了bing.com
不过bing和熊掌社的结果返回水平我感觉差不多吧,都跟谷歌差很远
2015-04-02 12:14:43 +08:00
回复了 HxSeek 创建的主题 程序员 C 语言指针问题
我想你理解了指針就是地址,但是有点把c想得太智能了*a = *b是不会复制整个字符串的,出错原因楼上@Andiry说了
手动复制一般用memcpy复制内容,当然这个例子用楼上@gdqyn换址比较好
我其实建议新手上路还是std::string比较省心,当然如果这个是你作业要求那当我没说
2015-04-01 11:42:40 +08:00
回复了 fliar 创建的主题 PHP else 和 return,你喜歡哪種?
嘿嘿,其实我是同意@df4VW,不过我还是愿意听听大家怎么说
我个人觉得一堆if else if无论逻辑性和可读性都不如if return
至于多入口单出口,抱歉我愚昧不知道这准则,但是我想也不会有人为了这准则都用回goto:)
有冒犯的话先陪个不是,不好意思啦请不要生气,这个例子其实我想两个不会差很多
2015-03-30 18:53:29 +08:00
回复了 caizixian 创建的主题 C 为什么这样开数组会出问题?
int[] a = new int[n];
删除:
delete[] a;
2015-03-30 18:49:47 +08:00
回复了 caizixian 创建的主题 C 为什么这样开数组会出问题?
变长数组要用new
選擇l1|O02Z明顯不同的字體(菸
@besto 所以可以申請變長數組喔
@besto c99可以這樣寫?
char new_str[end - start + 1];
@zeroday 我代碼有寫,你比下差異
strncpy( uct, str_sub( words[1], 0, 6 ), 7 );
你的另一個問題是strncpy的使用,你複製一個長度7的字串(0-6),但是只複製前6個沒有/0,所以你會看到亂碼
我簡單改了一下你的代碼,這份代碼可以運行但不代表正確(比如我new 出來數組沒刪),只是說明問題在哪裡
指針的問題你還要再研究,寫太多就長了

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

char* str_sub( char str[], int start, int end );
void str_split( char* words[], char str[], char* delim );
int chk_sum( char sen[] );
int hex_to_dec( char *s );
int chk_val( char sen[] );
void print_bjt( char uct[] );
int is_vaild( char *words[], int chksum, int chkval );

int main()
{
char str[] = "$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50";
char sen[255];
char uct[7];
memcpy(sen, str, sizeof str);
//scanf ( "%s", sen );
while ( strcmp( sen, "END" ) != 0 )
{
char *words[17];
int chksum = chk_sum( sen );
int chkval = chk_val( sen );
printf ( "chksum=%d chkval=%d\n", chksum, chkval );
str_split( words, sen, "," );

{
printf ( "word[1]=%s\n", words[0] );
printf ( "word[2]=%s\n", words[1] );
printf ( "%s\n", sen );
}

if ( is_vaild( words, chksum, chkval ) == 1 )
{
printf ("%s\n", str_sub( words[1], 0, 6 ) );
strncpy( uct, str_sub( words[1], 0, 6 ), 7 );
printf ("%s\n", uct );
}
scanf ( "%s", sen );
}
printf ("%s\n", uct );
print_bjt( uct );
return 0;
}

char* str_sub( char str[], int start, int end )
{
char* new_str = new char[end - start + 1];
char *result = new_str;
for ( int i = start, j = 0; i < end - start; i++, j++ )
{
new_str[j] = str[i];
}
result[end-start] = '\0';
return result;
}

void str_split( char* words[], char str[], char* delim )
{
int i = 0;
char *buf = str;
while ( (words[i] = strtok( buf, delim ) ) != NULL )
{
i++;
buf = NULL;
}
}

int chk_sum( char sen[] )
{
char *p = NULL;
p = strchr ( sen, '$' ) + 1;
int xor = *p++;
while ( *p != '*' )
{
xor ^= *p;
p++;
}
xor %= 65536;
return xor;
}

int chk_val( char sen[] )
{
char *p = NULL;
p = strchr( sen, '*' ) + 1;
int checkval = hex_to_dec( p );
return checkval;
}

int hex_to_dec( char *s )
{
int n = 0;
int i = 0;
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] >= '0' && s[i] <= '9')
n = n * 16 + s[i] - '0';
if (s[i] >= 'a' && s[i] <= 'f')
n = n * 16 + s[i] - 'a' + 10;
if (s[i] >= 'A' && s[i] <= 'F')
n = n * 16 + s[i] - 'A' + 10;
}
return n;
}

int is_vaild( char *words[], int chksum, int chkval )
{
int ret = 0;
if ( strcmp( words[0], "$GPRMC" ) == 0 &&
strcmp( words[2], "A" ) == 0 &&
chksum == chkval )
{
ret = 1;
}
return ret;
}

void print_bjt( char uct[] )
{
int uct_h1 = ( uct[0] - '0' ) * 10;
int uct_h2 = ( uct[1] - '0' );
int uct_hh = uct_h1 + uct_h2;
int bjt_hh = ( uct_hh + 8 ) % 24;
printf ( "%2d:%c%c:%c%c", bjt_hh, uct[2], uct[3], uct[4], uct[5] );
}
沒編過
char new_str[end - start + 1];
你如果要申請變長char 數組,要用new
然後記得用完刪掉
class
2014-12-30 15:06:01 +08:00
回复了 iambeginner 创建的主题 问与答 [经验分享] 走错一步就没法去台湾了 深刻教训
我的流程似乎是,入台證先辦好,然後公司向當地政府申請批复,批复下來以後去戶籍所在地辦理
時程一個半月
2014-12-29 16:27:11 +08:00
回复了 pubby 创建的主题 Android 你们 Nexus5 升级到 Android 5.0 后 QQ 还正常不?
QQi表示一直都是crash,然後一直都沒更新
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2146 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 10:25 · PVG 18:25 · LAX 03:25 · JFK 06:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.