小白请教一道C语言编程题
请编写一个程序,用一个单词替代给定字符串中的单词。在文本中使用”It is good to program in PASCAL language“ 中,用“C”将”PASCAL“替换掉。(小白表示毫无思绪,望技术大牛多多指教!) sulley 发表于 2020-4-28 22:15
void replace(char*, char*, char*) ”:无法将参数 264Project 7源.cpp从”const char ”转换为”c ...
#include <stdio.h>
#include <string.h>
#pragma warning( disable : 4996)
void replace(char *str, char *s, char *t)
{
char temp, *p;
int lens = strlen(s),
lent = strlen(t);
p = strstr(str, s);
strcpy(temp, p + lens);
strcpy(p, t);
strcpy(p + lent, temp);
}
int main()
{
char s = "It is good to program in PASCAL language.";
char * ss = "PASCAL";
char * t = "C";
replace(s, ss, t);
puts(s);
while (1);
}
可以这样修改,应该是你的机器对于类型的检查比较严格。 这个其实就是字符串匹配的问题,匹配到原字符串中指定子串,问题也就解决了,可以参考下算法教材上的KMP算法或者BM算法之类 ly落叶 发表于 2020-4-28 21:22
这个其实就是字符串匹配的问题,匹配到原字符串中指定子串,问题也就解决了,可以参考下算法教材上的KMP算 ...
跪求大佬再指点指点,我还没有学到KMP和BM。刚才去搜索也是看得一头雾水。{:10_266:}
恕我愚钝,我还是不知道怎么敲代码2333 C语言的话用指针变量存储该字符串,然后用while语句对指针地址自加进行解引用,检测到当前地址内容为‘\0’或‘\n’即退出循环,然后在循环中进行判断,记录首字母和末字母的地址,然后将该地址的值进行替换即可
python的话可以用字符串的内置函数replace()直接进行替换 Qdb 发表于 2020-4-28 21:47
python的话可以用字符串的内置函数replace()直接进行替换
戳中痛点!奈何是要使用C语言,暴风哭泣{:10_266:} Qdb 发表于 2020-4-28 21:46
C语言的话用指针变量存储该字符串,然后用while语句对指针地址自加进行解引用,检测到当前地址内容为‘\0’ ...
大佬这是我后来改写的代码,可是运行结果报错了,你能帮忙看看错在哪儿了吗?
#include <stdio.h>
#include <string.h>
void replace(char *str, char *s, char *t)
{
char temp, *p;
int lens = strlen(s),
lent = strlen(t);
p = strstr(str, s);
strcpy(temp, p+lens);
strcpy(p, t);
strcpy(p+lent, temp);
int main()
{
char s = "It is good to program in PASCAL language.";
replace(s, "PASCAL", "C");
puts(s);
} sulley 发表于 2020-4-28 21:58
大佬这是我后来改写的代码,可是运行结果报错了,你能帮忙看看错在哪儿了吗?
replace()函数没有结束的大括号 } #include <stdio.h>
#include <string.h>
#pragma warning( disable : 4996)
void replace(char *str, char *s, char *t)
{
char temp, *p;
int lens = strlen(s),
lent = strlen(t);
p = strstr(str, s);
strcpy(temp, p + lens);
strcpy(p, t);
strcpy(p + lent, temp);
}
int main()
{
char s = "It is good to program in PASCAL language.";
replace(s, "PASCAL", "C");
puts(s);
while (1);
}
用你给的程序,稍微改动一下,完全是可以的 Richard149 发表于 2020-4-28 22:10
#include
#include
void replace(char*, char*, char*) ”:无法将参数 264Project 7源.cpp从”const char ”转换为”char*”
请问这个该怎么解决 sulley 发表于 2020-4-28 22:15
void replace(char*, char*, char*) ”:无法将参数 264Project 7源.cpp从”const char ”转换为”c ...
你是运行哪个代码出现的这个错误; C:\Users\Richard\Desktop\Shell\捕获.PNG Richard149 发表于 2020-4-28 22:40
可以这样修改,应该是你的机器对于类型的检查比较严格。
可是系统还是会这样报错{:10_266:}我用的是VS2019
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2440 “初始化”: 无法从“const char ”转换为“char *” Project7 C:\Users\lenovo\source\repos\Project7\Project7\源.cpp 20
Richard149 发表于 2020-4-28 22:40
可以这样修改,应该是你的机器对于类型的检查比较严格。
非常感谢你今天的热心帮助!感谢感谢感谢!今天遇到的问题大多和我的软件要求你较高。总之十分感谢你的帮助啊! sulley 发表于 2020-4-28 21:58
大佬这是我后来改写的代码,可是运行结果报错了,你能帮忙看看错在哪儿了吗?
第十二行后少了个}
页:
[1]