【发布时间】:2017-04-08 13:27:53
【问题描述】:
#include "stdafx.h"
#include "stdio.h"
void repl(char *string, char oldc, char newc);
char text[60] = { "I am going to replace the character a with the character i";
char newc = 'b';
char oldc = 'a';
int main()
{
void repl(char *string, char oldc, char newc);
return 0;
}
void repl(char *string, char oldc, char newc)
{
int i = 0;
for (i = 0; i < *string; i++)
{
if (*(string + i) == oldc)
{
*(string + i) == newc;
}
}
printf("%s", string);
}
我正在尝试将字符 a 替换为字符 b。
我知道如何在不使用指针的情况下做到这一点,但我不太确定何时涉及指针。
我得到的原型是:
void repl(char *string, char oldc, char newc);
【问题讨论】:
-
对于任何像
string这样的有效指针和像i这样的索引,表达式string[i]和*(string + i)是相等的。 -
您的问题是?你甚至都不调用函数。
-
另外,你正在做一些非常不寻常的事情。许多初学者错误地使用赋值
=而不是比较==。你反其道而行之。一个好的编译器应该能够警告您,如果没有,则启用更多警告。 -
最后,仔细看看循环条件...它远非正确,循环将(使用您可能想要使用的字符串)迭代 73 次。
-
char text[60] = { "I am going to replace the character a with the character i";行中有一个 uh...dangling...花括号。这不需要存在,并且会导致编译问题。
标签: c string pointers character