将变量传递给函数的问题

时间:2014-11-09 15:26:21

标签: c parameter-passing

我为一个函数写了几行代码,用" - "替换字符串中的所有空格。并打印字符串。代码编译,但是当它运行时,它打印"新字符串是0替换"。有人能告诉我我的代码出错了吗?我假设它与char传递给函数的方式有关。

//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>

void replace(char s)
{
    int num = 0;
    while (s != '\0')
    {
        if (s == ' ')
        {
            s = "-";
            num++;
        }
        s++;
    }
    printf("New string is %c with %d replacements", s, num);
}

int main()
{
    char str = "The cat sat";
    replace(str);
    _getch();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我找到了解决我所有代码问题的方法。请参阅以下代码:

//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>
#include <string.h>

void replace(char *s);

int main()
{
    char str[] = "The cat sat";
    replace(str);
    _getch();
    return 0;
}

void replace(char *s)
{
    int num = 0;
    unsigned int i;

    for(i=0; i<strlen(s); i++)
    {
        if (s[i] == ' ')
        {
            s[i] = 45;
            num++;
        }
    }

    printf("New string is %s with %d replacements", s, num);
}