使用用户输入操作C中的字符串

时间:2014-11-21 15:14:03

标签: c string

我正在为我的comp sci类编写一个程序,问题是要求用户输入命令和字符串。然后,使用"反向"反转后面的字符串或"创建"打印后面的字符串。反向输出应保持单词反向,然后反向打印后面的字符串。

/* for Reverse command */
else if(strcmp(str,"reverse ") > 0)
{
    reverse(str);
    printf("Reverse of string: %s\n", str);
}

以下函数用于反转单词:

void reverse(char *string)
{
    int length, i;
    char *begin, *end, temp;

    length = strlen(string);

    begin = string;
    end = string;

    for (i = 0 ; i < (length - 1) ; i++)
    end++;

    for (i = 0 ; i < length/2 ; i++)
    {
       temp = *end;
       *end = *begin;
       *begin = temp;

     begin++;
     end--;
    }
}

输出会反转所有单词和打印件。有没有办法在传递给反向函数之前中断字符串的反向部分?

1 个答案:

答案 0 :(得分:1)

在调用函数reverse之前,请使用

char *ptr=strchr(str,' ');
str=++ptr;

切断&#34;反向&#34;来自strstring.h需要包含才能使用strchrstrchr返回指向字符串{{1}中第一个字符' '的指针如果角色不是,则为str 找到。NULL在将其分配给ptr之前会增加一次以从字符串中删除空格。