c语言字符串倒置函数,c++倒置字符串
[C语言示例]:反转字符串
目录[C语言示例]:反向字符串输入描述:输出描述:I/O所有代码结论
链接:
https://www . now coder . com/question terminal/b0ae 3d 72444 a 40 e 2 bb 14 af 7d 4 CB 856 ba
资料来源:Niuke.com
颠倒句子的单词,但不颠倒标点符号。比如,我喜欢北京。功能之后就变成了:北京。比如我。
描述:每个测试输入包含1个测试用例:我喜欢北京。输入案例的长度小于100。
描述:依次输出反转后的字符串,用空格分隔例1。
我喜欢北京。
输出北京的理念分析。像我一样
通过观察,我们知道这个问题可以通过先把整个字符串倒过来,再把字符串中的每个单词倒过来来解决。
反转整个字符串,并反转字符串中每个单词的顺序。
如图所示
需要注意的事项
不能使用scanf,因为scanf遇到空格就停止。可以使用gets();或者gets _ s();
gets_s()的使用
首先,字符串的逆序与逆序字符的函数无关。
*str是字符串开头的地址,right是字符串中最后一个字母的下标,
void reseve(char* str,int left,int right)
{
同时(左/右)
{
char ch=str[left];
str[left]=str[right];//交换字符串
str[right]=ch;
左;
右-;
}
}其次,反转字符串中每个单词的顺序
int temp=0;//数组第一个元素的下标
for(int I=0;我借1;我)。//遍历字符串
{
If (arr[i]== arr[i]==0)//当遇到空格或\0时,需要颠倒语序。
{
reseve(arr,temp,I-1);//调用反向数组,其中I为空格或者\0的下标i-1为单词最后一个字母的下标。
temp=I 1;//下一个单词第一个字母的下标
}
}
所有代码
#包含字符串. h
#包含stdio.h
void reseve(char* str,int left,int right)
{
同时(左/右)
{
char ch=str[left];
str[left]=str[right];
str[right]=ch;
左;
右-;
}
}
int main()
{
char arr[100]={ 0 };
gets_s(arr,100);
int len=strlen(arr);
reseve(arr,0,len-1);
int temp=0;
for(int I=0;我借1;我)
{
if (arr[i]== arr[i]==0)
{
reseve(arr,temp,I-1);
temp=I 1;
}
}
printf(%s ,arr);
返回0;
}
结束语:世界那么大,我想去看看;一句话:钱包小到没人能走;g:努力吧。
,爱尼姑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。