一个笔试题:

花爺 2010-01-01 05:17:40
data.txt文件里存有如下数据:

客户A|1000|800|1
客户B|800|1000|0
客户C|1000|800|1
客户D|1200|2000|1

其中的数据使用"|"隔开,第一列为客户名称,第二列为账户余额,第三列为账数额,第四列为转账成功与否(0失败,1成功).
程序要求打印出转账失败的客户名称。

本来这题只用一般的文件读取就可以了,但里面有中文和英文,无从下手.
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
罗耗子 2010-01-01
  • 打赏
  • 举报
回复
去过,哈哈,难怪题目看起来眼熟
花爺 2010-01-01
  • 打赏
  • 举报
回复

广州南天电脑系统
woshishabi1984 2010-01-01
  • 打赏
  • 举报
回复
第一反应是REGEX,试了一下 中文也可以匹配,估计碰到中文,LIB会自动用UNICODE处理

import re

f = file("c:/a.txt", 'r')
regex = re.compile(r"^([^|]+)\|.+0$")

while True:
line = f.readline()
if len(line) == 0:
break
p = regex.match(line)
if p != None:
print p.group(1)
罗耗子 2010-01-01
  • 打赏
  • 举报
回复
LZ是在哪的笔试
#include <stdio.h>
#include <string.h>
long split_c(char *inbuf,int fldno,char *outbuf)
{
int j=0,m=0;
char *p=inbuf;
while (*p)
{
if (*p!='|')
{
*(outbuf+j++)=*p++;
}
else
{
*p++;
m++;
if (m==fldno)
{
*(outbuf+j)=0x00;
return j;
}
else
{
j=0;
*outbuf=0x00;
}
}
}

if (m==fldno-1)
{
*(outbuf+j)=0x00;
}
else
{
*outbuf=0x00;
}
return 0;
}


int main(int argc,char *argv[])
{
char buff[256]={0};
char inFileName[256]={0};
char recArray1[64]={0}; //username
char recArray4[10]={0}; //flag

FILE *fpFileIn;

printf("please input filename:\n");
scanf("%s",inFileName);

fpFileIn = fopen(inFileName,"r");
if(NULL == fpFileIn)
{
printf("can't open:%s\n",inFileName);
return 1;
}
if( feof(fpFileIn) ) //empty file
{
printf("file is empty\n");
return 1;
}

while (true)//loop
{
if( feof(fpFileIn) )
{
break;
}

memset(buff,0x00,sizeof(buff));
fgets(buff,sizeof(buff),fpFileIn);

memset(recArray1,0x00,sizeof(recArray1));
split_c(buff,1,recArray1);
if( strlen(recArray1) < 3 ) //empty username
{
continue;
}

memset(recArray4,0x00,sizeof(recArray4));
split_c(buff,4,recArray4); //flag

if(recArray4[0]!='1') printf("%s\n",recArray1);
}

if(fpFileIn != NULL) fclose(fpFileIn);

return 0;
}
花爺 2010-01-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dolphin_001 的回复:]
中文2个字节。。。unicode编码
[/Quote]

这个我懂,就怎么处理数据对齐!
mitiao 2010-01-01
  • 打赏
  • 举报
回复
每行从后往前处理怎么样?
Dolphin_001 2010-01-01
  • 打赏
  • 举报
回复
中文2个字节。。。unicode编码

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧