c语言函数字符串倒序,C语言倒序

c语言 字符串倒序排列

#include stdio.h

创新互联建站长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为集安企业提供专业的网站设计制作、成都网站制作集安网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

#include stdlib.h

char *reverse(char *str)

{

int len;

if( (len=strlen(str))==0 )

return NULL;

else if( len==1 )

return str;

int i;

char tmp;

for(i=0; ilen/2; i++)

{

tmp = str[i];

str[i] = str[len-i-1];

str[len-i-1] = tmp;

}

return str;

}

int main(int argc, char *argv[])

{

char str[128];

memset(str, 0, sizeof(str));

gets(str);

while( strlen(str)!=0 )

{

reverse(str);

printf("str = %s\n", str);

gets(str);

}

return 0;

}

c语言 倒序输出字符串

您好,一个汉字占用两个字节(扩展ASCII码),而getchar()每次只能读入一个字节,因此读入汉字时,则需要用gets()函数。

倒叙输出汉字串时,有两种方法,一是从字符串末端开始,每次输出两个字节,二是直接汉字将字符串在数组中倒置,然后再用puts()函数直接输出。

以上两种方法都有局限性,一旦含有非汉字字符,极有有可能造成乱码。

#include stdio.h

#include string.h

unsigned char *InverseStr(unsigned char t[],unsigned char s[]) {

int i,j,len = strlen((char *)s);

for(i = len - 1,j = 0; i = 0; --i,++j) {

if(s[i] 0X7F) { // 是汉字

t[j++] = s[i - 1];

t[j] = s[i];

--i;

}

else t[j] = s[i];

}

t[j] = '\0';

return t;

}

int main() {

unsigned char s[] = "C语言char数据类型练习";

unsigned char t[25];

printf("s = \"%s\"\n",s);

printf("t = \"%s\"\n",InverseStr(t,s));

return 0;

}

请教C语言字符串倒序输出

#includestdio.h

#includestring.h

void main()

{

char string1[200]; //用于存放输入的字符串

char string2[200]; //用于存放倒序后的字符串

int invertion(char *ch1, char *ch2); //声明函数

printf("Please input a sentences:\n");

gets(string1); //这里不要用scanf,因为scanf遇到空白符就会结束

printf("Your inputed sentences is:%s\n", string1);

invertion(string1, string2);

printf("The invertion sentences is:%s\n", string2);

getchar();

}

int invertion(char *ch1, char *ch2)/*char1 接收实参传过来的原字符串指针 char2 接收倒序后的新字符串返回主函数*/

{

int count = 1,num=0;

char *ch=ch1;

for(;*ch1!='\0';ch1++)// 统计单词个数

{

if(*ch1==' ')

count++; //单词数等于空格数加1,前面把count初始化为1就是这个原因

if(*ch1==' '*(ch1+1)==' ') //防止单词之间有2个空格符而多计数了一个单词数

count--;

}

printf("count = %d\n", count);

ch1=ch1-1;//前面的ch1经过循环之后已经指向字符串的结束标志'\0',这里减1是为了让它指向字符串的最后一个字符

while(ch1=ch)//让ch1从指向string1的最后一个字符开始往前递减,当减到字符串的首个字符时结束

{ int j=num; //保存num,后面要用到这个数

if(*ch1!=' ')//记录每个单词的长度 ,以空格符作为标志

num++;

else // 知道了每个单词的长度之后,就可以用循环将字符以单词为单位写入数组string中,这样的话单词内就不会倒序了

{

for(int i=1;i=j;i++,num--)

*(ch2-num)=*(ch1+i);

*ch2=*ch1;

}

ch1--;

ch2++;

}

for(int i=1;i=num;i++,ch2++)//因为string1的第一个单词前没有空格符,肯定输不出来,所以单独用一个循环将其输出

*(ch2-num)=*(ch1+i);

*ch2='\0'; //string2的结束标志

}

这是我做了修改之后的程序,看看符不符合要求!!

你的那个定义的变量太多,很混乱!循环语句太乱了,if判断条件与循环条件不正确

已经做了修改,看符合要求不,不行的话,再说!!!

又做了修改了,看符合要求不??

不会吧,我调试通过还运行了!!不然怎么会发上来啊!!至于算法问题我给注释吧,你看看!!

如何用C语言实现字符串逆序排列

楼主你好

具体代码如下:

#includestdio.h

#includestring.h

int

main()

{

char

*p;

char

c[20];

printf("Enter

a

string:");

scanf("%s",c);

p=c+strlen(c)-1;

while(p=c)

printf("%c",*(p--));

printf("\n");

}

希望能帮助你哈

c语言怎么把字符串倒序

反序方法见 下面 函数 void op(char *s). 主函数是调用的例子。

#include stdio.h

void op(char *s){

int i,k;

char c;

k = strlen(s);

for (i=0;ik/2;i++){c=s[i];s[i]=s[k-i-1];s[k-i-1]=c;};

};

int main()

{

char s[200];

printf("input one line string:\n");

gets(s);

op(s);

printf("%s\n",s);

return 0;

}

输入:abc123

输出:321cba

如何用C语言将字符串逆序输出?

C语言程序如下:

#includestdio.h

#includestring.h

main()

{

int i,j,t,n;

char a[10];

printf("请输入字符串:");

gets(a);

n=strlen(a);

for(i=0;i=n/2;i++)

{

t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;   

}

for(j=0;jn;j++)

printf("%c",a[j]);

printf("\n");

}

扩展资料:

字符串倒序输出的五种方法

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成


名称栏目:c语言函数字符串倒序,C语言倒序
标题链接:http://pwwzsj.com/article/hdjoge.html