当前位置:首页 » 编程语言 » c语言颠倒字符串

c语言颠倒字符串

发布时间: 2023-08-30 00:48:43

c语言 把字符串前后倒置

我的算法是原地转置。原地转置有个问题,就是不能对静态存储的字符串操作。比如char
*s="abc";reverse(s);就会出错。楼上的几位的算法不是原地转置,可以对静态字符串操作。
void
reverse(char
*s)
{
char
*p=s;
while(*p!='\0')
p++;
p--;
char
*q=s;
char
temp;
while(p>q)
{
temp=*p;
*p=*q;
*q=temp;
}
}

Ⅱ C语言反转字符串怎么反转

读取字符串,浏览字符串每一个字符,
如果是空格就输出空格,
否则就保存当前位置,从当前位置移动到下一个空格或字符尾前,
从当前位置开始反向输出,直达回到保存的位置
最后输出回车,结束

//以下是C语言版的,需要的话,可以看看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define String_MaxSize 10000 //读入字符串的最大长度

int main()
{
char stringPtr[String_MaxSize]; //保存读入的字符串
//循环读取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr); //字符串的长度
int i;
//循环读取整段字符串
for(i = 0; i < stringPtr_length; i++)
{
//如果字符为空格
if(stringPtr[i] == ' ')
{
//直接输出空格
printf(" ");
}
//如果字符非空格
else
{
int tempPos = i; //保存当前i的位置
int j; //代替i进行反向移动
//读取到下一个空格或字符串尾的前一个位置
while(i < stringPtr_length && stringPtr[i] != ' ')
{
i++;
}
i--;
//输出单词
for(j = i; j >= tempPos; j--)
{
putchar(stringPtr[j]);
}
}
}
//输出回车
printf("\n");
}
//输出回车
printf("\n");
return 0;
}

Ⅲ c语言 将一个输入的字符串的内容颠倒后输出

可以直接使用库函数strrev(), 需要包含头文件string.h

#include<stdio.h>
#include<string.h>

intmain()
{
charbuf[1024];
scanf("%s",buf);
strrev(buf);
printf("%s ",buf);
return0;
}

strrev不是C语言的函数,自己用指针来实现也非常简单。

char *_strrev(char *str)

{

char *f = str, *l = str + strlen(str), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return str;

}

wchar_t *_wcsrev(wchar_t *wcs)

{

wchar_t *f = wcs, *l = wcs + wcslen(wcs), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return wcs;

}

对于多字符的汉字的调换次序,要想得到正确的结果,必须先将多字符转换为宽字符,调换次序后再转化为多字符。

热点内容
安卓手机用什么软件做特效 发布:2025-03-14 21:50:01 浏览:396
gta5怎么把配置调低 发布:2025-03-14 21:50:00 浏览:719
解压缩所有的 发布:2025-03-14 21:48:34 浏览:523
安卓怎么在屏保记录恋爱时间 发布:2025-03-14 21:47:41 浏览:765
java获取地址 发布:2025-03-14 21:44:30 浏览:730
app后台源码 发布:2025-03-14 21:33:34 浏览:735
cftp目录是否存在 发布:2025-03-14 21:32:45 浏览:98
我的世界斗罗服务器电脑网易版 发布:2025-03-14 21:28:33 浏览:525
java是甲骨文 发布:2025-03-14 21:21:38 浏览:127
柱顶要加密 发布:2025-03-14 21:16:11 浏览:854