社区
C语言
帖子详情
用C语言怎样对一个文本文件的的若干字符进行查找并替换?
HR-TANG
2005-06-16 04:49:38
1.用C语言对一个文本文件中的若干字符(如在 CPRINTPROGRAM,HELPME 中找找HELP,并可以用别的字符来替换它)进行查找,并替换,并且在同一个文件中要查找并替换若干次不同的字符.
请尽量讲详细一些,最好有例题.
2.另外还有一个问题,就是把一个字符型数组转换成一个整型数或者是其它类型的数据.
谢谢各位高手指点:)
...全文
796
13
打赏
收藏
用C语言怎样对一个文本文件的的若干字符进行查找并替换?
1.用C语言对一个文本文件中的若干字符(如在 CPRINTPROGRAM,HELPME 中找找HELP,并可以用别的字符来替换它)进行查找,并替换,并且在同一个文件中要查找并替换若干次不同的字符. 请尽量讲详细一些,最好有例题. 2.另外还有一个问题,就是把一个字符型数组转换成一个整型数或者是其它类型的数据. 谢谢各位高手指点:)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jixingzhong
2005-06-18
打赏
举报
回复
字符型数组转换成一个整型数
atoi()
其它类型的数据: float--------atof()
总之,使用相应的库函数就可以了
gogdo
2005-06-18
打赏
举报
回复
当然先要从数组里读入啦!
HR-TANG
2005-06-18
打赏
举报
回复
从字符串中搜索字符的函数:strchr()---------返回的是什么值啊?
从字符串中搜索字符串的函数:strstr()-------返回的是什么值啊?
是不是得先把文本文件中的内容读到一个数组中才能够进行操作啊?
heguosheng
2005-06-18
打赏
举报
回复
mark
holymoon858
2005-06-18
打赏
举报
回复
对文本文件的替换处理一般有两种方法:
1. 对小文件,读入整个文件内容到字符串,然后使用上述方法;
2. 对大文件,可以使用临时文件的方法,具体的处理又有很多方式,可以自己思考思考。
HR-TANG
2005-06-17
打赏
举报
回复
自么没有人给解答一下啊!
自已帮忙顶一下.
younggundog
2005-06-17
打赏
举报
回复
//未用库函数.
#include <iostream>
using namespace std;
int StrLen(const char *chSrc)
{
int iLen = 0;
const char *pch = chSrc;
while (*pch++ != '\0')
{
iLen++;
}
return iLen;
}
char *FindFirstStr(char *chDest, const char *chSrc)
{
char *pchDest = chDest;
const char *pchSrc = chSrc;
int iIndex = 0;
int iSrcSize = StrLen(chSrc);
while ((pchSrc!=NULL) && (pchDest!=NULL) && (iSrcSize > iIndex))
{
if ((*pchSrc++) != (*pchDest++))
break;
iIndex++;
}
return iSrcSize == iIndex ? (pchDest-iIndex) : NULL;
}
char *RePlace(char *chDest, const char *chSrc, int size)
{
char *pchDest = chDest;
const char *pchSrc = chSrc;
char *ptemp = NULL;
int iSrcSize = StrLen(pchSrc);
int iDestSize = StrLen(pchDest);
if (iSrcSize > size)//先向后一.
{
pchDest += iDestSize + iSrcSize - size;
ptemp = chDest + iDestSize;
while (iDestSize)
{
*pchDest-- = *ptemp--;
// *pchDest = *(pchDest-1);
// pchDest--;
iDestSize--;
}
}
else
if (iSrcSize <size)
{
pchDest += iSrcSize;
while (*pchDest!='\0')
{
*pchDest = *(pchDest+1);
pchDest++;
}
}
pchDest = chDest;
while (*pchSrc != '\0')
{
*pchDest++ = *pchSrc++;
}
return chDest;
}
int main(int k, char *t[])
{
char chStr[100];
char chFindStr[10];
char chReplaceStr[10];
char *pchFind = NULL;
char *pch = chStr;
int iSize = 0;
cout << "please input the Src str:" << endl;
cin >> chStr;
cout << "please input the Find str:" << endl;
cin >> chFindStr;
cout << "please input the replace str:" << endl;
cin >> chReplaceStr;
iSize = StrLen(chStr);
chStr[iSize] = '\0';
iSize = StrLen(chFindStr);
chFindStr[iSize] = '\0';
iSize = StrLen(chReplaceStr);
chReplaceStr[iSize] = '\0';
while (*pch != '\0')
{
pchFind = FindFirstStr(pch, chFindStr);
if (pchFind != NULL)
{
int iSize = strlen(chFindStr);
RePlace(pchFind, chReplaceStr,iSize);
cout << chStr <<endl;
pch = chStr;
}
pch++;
}
cout << "result:" <<endl;
cout << chStr <<endl;
return 0;
}
holymoon858
2005-06-17
打赏
举报
回复
从字符串中搜索字符的函数:strchr()
从字符串中搜索字符串的函数:strstr()
对于替换的工作就要自己去完成,如"abcd123efg"中把"123"替换成"xxxx",先用strstr()找到"123"字符串在源字符串中开始的位置,然后把"efg"字符串往后拷贝一位,可以使用memmove(),再使用memcpy()把"xxxx"拷贝到"123"开始的位置;对"123"替换成"xx"的情况,就把"efg"字符串往前拷贝一位,然后把"xx"拷贝到"123"开始的位置;"123"替换成"123"的情况,应该不用我说了;
对存在多个搜索字符串的情况,如"abcd123efg123kdi"的,对上述工作做循环处理即可。
HR-TANG
2005-06-16
打赏
举报
回复
能不能给详细一点,讲个例题吧!谢了!
hofer_song
2005-06-16
打赏
举报
回复
strcat();strncat();
strcmp();strncmp();
strcpy();strncpy();
HR-TANG
2005-06-16
打赏
举报
回复
字符串数组类型转换已搞定,请各位介绍一下文本的查找和替换,谢谢匪徒:)
HR-TANG
2005-06-16
打赏
举报
回复
能不能写详细一些!
这个函数在哪个头文件里面啊
zhousqy
2005-06-16
打赏
举报
回复
atoi()
Delphi 12.3控件之TMS FNC Chart 3.0.1.7.7z
Delphi 12.3控件之TMS FNC Chart 3.0.1.7.7z
基于PLC的变频恒压供水系统综合设计(2).docx
基于PLC的变频恒压供水系统综合设计(2).docx
基于物联网的智慧农业系统的设计.doc
基于物联网的智慧农业系统的设计.doc
Excel制作表格教学过程(课堂PPT).ppt
Excel制作表格教学过程(课堂PPT).ppt
python sparse dtu
yolo
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章