社区
C语言
帖子详情
用C语言怎样对一个文本文件的的若干字符进行查找并替换?
HR-TANG
2005-06-16 04:49:38
1.用C语言对一个文本文件中的若干字符(如在 CPRINTPROGRAM,HELPME 中找找HELP,并可以用别的字符来替换它)进行查找,并替换,并且在同一个文件中要查找并替换若干次不同的字符.
请尽量讲详细一些,最好有例题.
2.另外还有一个问题,就是把一个字符型数组转换成一个整型数或者是其它类型的数据.
谢谢各位高手指点:)
...全文
857
13
打赏
收藏
用C语言怎样对一个文本文件的的若干字符进行查找并替换?
1.用C语言对一个文本文件中的若干字符(如在 CPRINTPROGRAM,HELPME 中找找HELP,并可以用别的字符来替换它)进行查找,并替换,并且在同一个文件中要查找并替换若干次不同的字符. 请尽量讲详细一些,最好有例题. 2.另外还有一个问题,就是把一个字符型数组转换成一个整型数或者是其它类型的数据. 谢谢各位高手指点:)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()
考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)
考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)
易语言源码易语言QQ帐号自动申请源码
易语言源码易语言QQ帐号自动申请源码
(顶刊复现)基于非线性反步法和Lyapunov-MPC模型预测的自主水下航行器轨迹跟踪控制(包括fossen动力学模型)
(顶刊复现)基于非线性反步法和Lyapunov-MPC模型预测的自主水下航行器轨迹跟踪控制(包括fossen动力学模型)
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章