我正在为我的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--;
}
}
输出会反转所有单词和打印件。有没有办法在传递给反向函数之前中断字符串的反向部分?
答案 0 :(得分:1)
在调用函数reverse
之前,请使用
char *ptr=strchr(str,' ');
str=++ptr;
切断&#34;反向&#34;来自str
。string.h
需要包含才能使用strchr
。strchr
返回指向字符串{{1}中第一个字符' '
的指针如果角色不是,则为str
找到。NULL
在将其分配给ptr
之前会增加一次以从字符串中删除空格。