Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c程序,通过字符串递增_C_String_Increment_C Strings - Fatal编程技术网

c程序,通过字符串递增

c程序,通过字符串递增,c,string,increment,c-strings,C,String,Increment,C Strings,我发现这个程序可以运行字符串并打印它们。我知道有一个错误,但我不是100%确定它是什么 char *stringOptions[] = {"one", "two", "three"}; void incrementString(char *input) { static int i = 0; input = stringOptions[i % 3]; i = (i + 1) % 3; } void print_string(void) { char *st

我发现这个程序可以运行字符串并打印它们。我知道有一个错误,但我不是100%确定它是什么

char *stringOptions[] = {"one", "two", "three"};

void incrementString(char *input) 
{
    static int i = 0;
    input = stringOptions[i % 3];
    i = (i + 1) % 3;
}

void print_string(void) 
{
    char *string = "initial";
    int i;

    for(i = 0; i < 3; ++i) 
    {
        incrementString(string);
        printf("%s ", string);
    }
}
char*stringOptions[]={“一”、“二”、“三”};
无效增量字符串(字符*输入)
{
静态int i=0;
输入=字符串选项[i%3];
i=(i+1)%3;
}
作废打印字符串(作废)
{
char*string=“initial”;
int i;
对于(i=0;i<3;++i)
{
递增字符串(字符串);
printf(“%s”,字符串);
}
}
它应该打印出来:一二三

对不起,我不知道更多,这是基于我试图做的事情,但我没有成功地阅读字符串。这是至关重要的,这是在像这样的单独功能。谢谢

for(i = 0; i > 3; ++i) {
    incrementString(string);
    printf("%s ", string);
}
这个循环永远不会执行。将
更改为

这个循环永远不会执行。将
更改为

这没什么用。请记住,C按值传递所有内容,因此您所做的只是将输入的本地副本设置为新地址。您可能希望向函数中传递一个双指针,然后设置取消引用的版本:

void incrementString(char **input) {

...

*input = stringOptions[i%3];
那么就这样称呼它:

incrementString(&string);
还有zoidberg所说的关于你的循环

for(i=0; i < 3; ++i) {
(i=0;i<3;++i)的
{
因为for循环的第二部分是它应该继续循环的条件

这没有任何作用。请记住,C按值传递所有内容,因此您所做的只是将输入的本地副本设置为一个新地址。您可能希望向函数中传递一个双指针,然后设置取消引用的版本:

void incrementString(char **input) {

...

*input = stringOptions[i%3];
那么就这样称呼它:

incrementString(&string);
还有zoidberg所说的关于你的循环

for(i=0; i < 3; ++i) {
(i=0;i<3;++i)的
{

因为for循环的第二部分是它应该继续循环的条件。

适当的缩进将使每个人都对你的问题感到高兴。当你提出问题时,你应该指定预期的行为以及你当前看到的内容。适当的缩进将使每个人对你的问题感到高兴n、 当你问一个问题时,你应该指定你想要的行为以及你当前看到的。对不起,那是一个错误的类型。谢谢,那是一个错误的类型。谢谢,这正是我需要知道的。双指针解决了所有问题。我可以在4分钟内将此作为正确答案投票。酷。很高兴我能提供帮助!T汉克斯,这正是我需要知道的。双指针解决了所有问题。我可以在4分钟内投票选出正确答案。酷。很高兴我能帮上忙!