用C操作字符串与用户输入

问题描述:

我工作的一个计划,我的基本的计算机科学类和这道题从用户和字符串,采取的命令。然后,使用“reverse”反转后面的字符串或“create”以打印随后的字符串。反转输出应该保持字相反,然后打印后面的字符串反向。用C操作字符串与用户输入

/* 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--; 
    } 
} 

输出反转所有的话,并打印。有没有办法在字符串被传递给反向函数之前中断字符串的反向部分?

+0

显示代码的一些输出以及要输出的内容。 – bitcell 2014-11-21 15:16:37

+0

发出命令:扭转世界你好 反向字符串:dlrow 2009东海生日贺esrever – nerd4life 2014-11-21 15:17:42

+0

这就是实际发生或你的期望?请在你的问题中编辑。 – bitcell 2014-11-21 15:19:28

之前调用该函数reverse,使用

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

从而切断来自str “反向”。需要包含string.h才能使用strchrstrchr字符串str,或者NULL如果字符是没有发现 在指针返回到该字符' '的第一次出现。 ptr在将其分配给str以删除字符串空间之前会增加一次。

+0

I “分配给从输入类型 '字符*' '的char [200]' 时不兼容的类型” – nerd4life 2014-11-21 15:49:06

+0

我str变量被定义为STR [200] – nerd4life 2014-11-21 15:49:39

+0

@ nerd4life,尝试'的strcpy得到这个错误(STR,++ PTR) ;'而不是'str = ++ ptr;' – 2014-11-21 15:55:24