我能解决这个问题,感谢所有帮助我解决问题的人。用另一个字符串替换字符串中的值
回答
您可以使用
sprintf(word, "%s ", dictn);
如果您的代码正在与printf的应该与sprintf的工作,只要你不溢出“词”,包括NULL终止,所以您可能必须调整“字“如果它小于dictn。
谢谢,我会尽力的!但是,你能解释一下sprintf做什么?它是否与fprintf相同? – user3096716
sprintf的工作方式与printf类似,但是它会打印到字符串而不是标准输出(在本例中打印到名为“word”的字符串)。很高兴看到“单词”和“单词”的声明。处理您遇到的问题最安全的方法是逐字阅读空格,制表符或换行符,因为您从文件中读取的方式有可能会溢出“word”或“dictn”,如果用户为您的程序提供一个文本文件,其中包含一个非常长的不间断字符序列,您的程序会崩溃或产生一些随机行为 –
首先,我假设你已经创建了具有足够大小的数组word
和dictn
以保存任何文件的最大长度字符串。
第一次故障:
在您创建循环,i
代表在输入文件中的字符串的数量和j
表示辞典弦数。 word
是您的输入字符串变量,dictn
是您的字典字符串变量。但是你想要检索和修改单词的第i个或第d个单词的第j个字符。这可能会导致错误,因为可能会出现这样的情况:
假设有inp
文件有10个单词,dictn
有100个单词。并且在您的循环中,i
的值为8,而j
的值为88.对应这些i
和j
的值,字符的字符串值为apple
,dictn
的字符串值也为apple
。所以这意味着apple
是输入文件的第8个单词和词典文件的第88个单词。如果满足其中一个条件,编译器会尝试应用word[i]=dictn[j];
之类的语句。这个例子意味着word[8] = dictn[88];
。但是这两个字符串都有apple
作为只包含5个字符的值!这会导致错误,因为您试图检索长度为5的字符串的第88个字符并将其分配给5长度字符串的第8个字符。所以你的代码是错误的,它只适用于一些罕见的情况。
第二次故障:
我假设你想读整部字典文件中输入文件的每一个字,但你将能够读取它的输入文件,因为你不打开它的唯一的第一个字或在读完整本字典后,在字典文件的开头设置位置指示符。
三错:
你的第一个if语句将永远不会达到假设你已经创建len1
和len2
变量为整数。因为在你的if语句,有小数数目的乘积的整数,将返回0,结果,自fscanf()
忽略空格,len1
和len2
将至少为1
第四故障:
同样你的else if
语句永远不会被达到,因为如果一个字符串与另一个字符串具有相同的值,那么它们的第一个字符也将相等,并且你的if语句在你比较它们的第一个字符时也将被接受。
事实上,我会写代码解决方案,但首先你需要正确的事情了其在逻辑上是错误的,因为我不知道你真正尝试通过代码来实现 - 只是因为我评论充满假设 - 。但我可以为您提供一些指导原则:
- 将您
len1
和len2
变量从int
到float
和投值,其返回从strlen()
功能float
。 - 重新打开您的
dict
文件进行外部循环的每次迭代。 (并且不要忘记不要关闭它)。 - 要改变你的
inp
文件,你可以使用一个fpos_t
类型的变量来跟踪你inp
文件的位置指示器(fgetpos()
获得当前位置和fsetpos()
改变位置fpos_t
变量的值,你可以搜索他们。)和键入单词fprintf()
或fputs()
到该位置以更改该字符串。
- 1. 用另一个字符串替换字符串中的字符?
- 2. 用mysql中的另一个字符串替换字符串
- 3. 用另一个字符串替换字符串的一部分
- 4. 用另一个字符串替换字符串的第一个字符
- 5. 替换字符串的子字符串用另一个字符串
- 6. 替换字符串转换成另一个字符串
- 7. 用C语言中的另一个字符串替换字符串字符
- 8. 无法用另一个字符串替换字符串中的字符
- 9. 大熊猫:用另一个字符串替换字符串
- 10. Sed则试图用另一个字符串替换字符串
- 11. 需要用另一个字符串替换部分字符串
- 12. sed - 用另一个字符串替换两个字符串之间的字符
- 13. 替换字符串用另一个子
- 14. 用另一个替换字符串
- 15. 如何从另一个字符串替换字符串?
- 16. 用另一个字符替换字符串中的字符并切换回
- 17. 用一个字符替换字符串中的多个字符
- 18. 用一个字符替换字符串中的整个字符
- 19. 用android中的字符串中的另一个字符替换字符?
- 20. 用另一个字符串中的每个字符替换字符串中的字符
- 21. 如何用R中列中的另一个字符串替换字符串?
- 22. 字符串中的字符串替换
- 23. 用一个StringBuffer子字符串替换一个子字符串
- 24. 用另一个模型值替换模型中的字符串
- 25. 从一个阵列替换字符到另一个字符串
- 26. 多串用一个字符串替换
- 27. Linux命令用另一个字符串替换LARGE文件中的字符串
- 28. 用另一个值替换查询字符串的一部分
- 29. 读取一个字符串直到关键字,并用UNIX中的另一个字符串替换字符
- 30. PHP如何用另一个字符串替换多个相同的字符串?
你说的问题是,当你有要使用的代码时,代码不会编译。难道你不认为提供不编译的代码以及编译尝试时提供的错误输出是一个超级想法吗? – mah
对不起,我添加了其他部分。这是我第一次使用这个网站。 – user3096716
当你尝试编译时,你得到的错误是什么?当涉及到复制字符串时,你会遇到一个问题,“word [i] = dictn [j]'只会分配指针,而不是复制单词中的实际字符。 – Macattack