繁体   English   中英

如何使用宽字符到多字节删除字符串字符之间的空格?

[英]how to remove space between characters of a string using wide char to multibytes?

我在winhex中打开了一个文件,如下所示。

1F 00 48 3A 18 00 00 00 53 00 70 00 6F 00 75 00 73 00 65 00 5F 00 61 00 7A 00 61 00 6D 00 00 00

我正在从文件中读取上述十六进制数据,并将其写入文本文件。 我的代码如下。

#include<stdlib.h>
#include<stdio.h>
#include<iostream.h>
int main()
{
FILE *pFile, *tempFile;
char *Main_buffer;
int nOfRecord, TotalSize, data=0;
pFile = fopen("C:\\wab files\\Main.wab", "rb"); 
if(pFile == NULL)
{
    fputs("file error", stderr);
    exit(1);
}
tempFile = fopen("C:\\myfile.text","wb");
if(tempFile == NULL)
{
    fputs("file not open", stderr);
    exit(2);
}
 fread(&nOfRecord, 1, 4, pFile);
 fread(&TotalSize, 1, 4, pFile);
 data = TotalSize;
 char* Main_buffer = (char*)malloc(data*sizeof(data));
 fread(Main_buffer, 1, TotalSize, pFile);
 fwrite(Main_buffer, 1, TotalSize, tempFile);
 free(Main_buffer);
 return 0;
}

此代码提供了一个文本文件,其中的数据编写如下。

朋友@ gmail。 合作

在以上数据中,每个字符之间都有一个空格。 如何从数据中删除空间并写入文本文件。 请通过编写一些代码作为宽字符到多字节的示例进行解释。 预先谢谢你。

基本上有两种方法可以做到这一点:

  1. 从生成的ASCII内容中手动删除空格。

  2. 使用图书馆为您完成工作(当然,如果允许的话)。 我更喜欢http://en.wikipedia.org/wiki/Iconv

它(在Wikipedia页面上说)在GCC中具有免费实现,因此您可以尝试使用它。 这里是Linux库的链接: http : //www.gnu.org/software/libiconv/#TOCintroduction

UPDATE

这是C语言中如何使用libiconv的示例: http ://www.gnu.org/software/libc/manual/html_node/iconv-Examples.html

尝试从<string.h>使用strtok()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM