C语言 读取txt中的数据并且交换位置,1A 2B 3C 4D 变2B 1A 4D 3C

C语言 读取txt中的数据并且交换位置,1A 2B 3C 4D 变2B 1A 4D 3C
RT,题目要求为读取不定长txt文件中的数据,没每次空格为一组,每隔两组交换位置.
要求输出值存为一个变量,可以通过printf指令一次显示出,而不是用回圈映出而已
就是比如说一个txt文档里面的内容是1A 2B 3C 4D 5E 6F 7G 8H,现在要读取并且转换成一个2B 1A 4D 3C 6F 5E 8H 7G的字串,而且对原TXT文件的内容长度要无要求,但原数据不会太长溢出(最多30组)
萨萨猫 1年前 已收到1个回答 举报

晨辰成橙 幼苗

共回答了15个问题采纳率:86.7% 举报

char stringArray[30][20];
for()
/*
stringArray[i] 存储字符串
读取若干组字符串 获得字符串个数n
*/
char res[1000] = "";
for(int i = 0; i < n/2; i++)
{
char temp[20] = "";
strcpy(temp,stringArray[i*2]);
strcpy(stringArray[i*2],stringArray[i*2+1]);
strcpy(stringArray[i*2+1],temp);
strcat(res, stringArray[i*2] );
strcat(res, stringArray[i*2 + 1] );
}
printf("%s",res);

1年前 追问

3

萨萨猫 举报

请问读取txt的呢?我试着写过的碰到空格就不读取了

举报 晨辰成橙

http://zhidao.baidu.com/question/212263297.html 读文件-》整条字符串-》按空格分割字符串(strtok 函数) http://baike.baidu.com/view/1028553.htm

萨萨猫 举报

您这段会错误哦。。。

举报 晨辰成橙

#include "stdafx.h"

#include

#include

#include

int _tmain(int argc, _TCHAR* argv[])

{

char *pchBuf = NULL;

int nLen = 0;

//文件放在D盘

char path[] = "d:\test.txt";

char *tokenPtr;

//__FILE__

//printf("%s n", __FILE__);

FILE *pF = fopen(path, "r"); //打开文件

fseek(pF, 0, SEEK_END); //文件指针移到文件尾

nLen = ftell(pF); //得到当前指针位置, 即是文件的长度

rewind(pF); //文件指针恢复到文件头位置

//动态申请空间, 为保存字符串结尾标志, 多申请一个字符的空间

pchBuf = (char*) malloc(sizeof(char)*nLen+1);

if(!pchBuf)

{

perror("内存不够!n");

exit(0);

}

//读取文件内容//读取的长度和源文件长度有可能有出入,这里自动调整 nLen

nLen = fread(pchBuf, sizeof(char), nLen, pF);

pchBuf[nLen] = ''; //添加字符串结尾标志

printf("读出的数据n");

printf("%sn", pchBuf); //把读取的内容输出到屏幕看看

tokenPtr=strtok(pchBuf," ");

int n = 0;

char stringArray[30][20];

while(tokenPtr != NULL)

{

//printf("%s ",tokenPtr);

strcpy(stringArray[n],tokenPtr);

tokenPtr = strtok(NULL," ");

n++;

}

printf("n");

char res[1000] = "";

for(int i = 0; i < n/2; i++)

{

char temp[20] = "";

strcpy(temp,stringArray[i*2]);

strcpy(stringArray[i*2],stringArray[i*2+1]);

strcpy(stringArray[i*2+1],temp);

strcat(res, stringArray[i*2] );

strcat(res, " " );

strcat(res, stringArray[i*2 + 1] );

strcat(res, " " );

}

printf("变化后的数据n");

printf("%s",res);

fclose(pF); //关闭文件

free(pchBuf); //释放空间

getchar();

getchar();

return 0;

}

可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.009 s. - webmaster@yulucn.com