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

字符串反转c语言

发布时间: 2022-05-21 21:28:47

c语言中如何实现字符串的反转

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

string_change(char*p)
{
inti,len;
chartemp;
len=strlen(p);

//printf("%d ",len);
//testprintf("%d ",len);

for(i=0;i<(len/2);i++)
{
temp=p[i];
p[i]=p[len-1-i];
p[len-1-i]=temp;
}
}

intmain(void)
{
chara[20]="1234567890";

printf("%s ",a);
string_change(a);
printf("%s ",a);

return0;
}

两个明显的误解:

  1. char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。

  2. c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];

② c语言的问题字符串反转

因为你在dest++时,改变了dest的指向的位置,所以没有输出正确的结果。

按照你的程序给你修改了一下,请参考。
1 #include <stdio.h>
2 #include <string.h>
#include <malloc.h> // 注意这里:增加使用malloc的头文件,消除warning
3 main()
4 {
5 char *a = "abc";
6 char *rever(char *dest,const char *src);
7 char *b = (void *)malloc(strlen(a)+1);
memset(b, 0x00, sizeof(strlen(a)+1)); // 注意这里:对malloc的buf进行初始化
8 printf("%s\n", rever(b,a));
9 }

10 char *rever(char *dest,const char *src)
11 {
12 int n;
char *temp = dest; // 注意这里:用来记录dest的初始地址
13 for (n = strlen(src)-1;n>=0;dest++,n--)
14 *dest = *(src+n);
15 return temp; // 注意这里:返回dest字符串的首地址
16 }

程序给你测试通过。

③ C语言字符串反转

for(i=0;i<len/2;i++)//<----------------------
{
ch=str[i];
str[i]=str[len-i-1];
str[i]=ch;
}

④ c语言如何实现字符串按位翻转

字符串按位翻转可以通过对每个字符按位翻转实现,首先通过指针偏移或数组下标依次取出字符,然后对单个字符做按位非操作,即~

⑤ C语言 字符串反转代码看不懂! 帮助详细解释,谢谢!!

*p2
=
str-1
while(*++p2);
这两句是为了让指针p2移动到字符结尾,即null字符。其中*p2
=
str-1
是为了配合后一句中while(*++p2)的。因为*++p2是先自增加1。这样当开始执行while(*++p2)是++p2正好指向字符串的第一个字符。
p2
-=1;
这句的意思是,while(*++p2)结束后,p2只需了字符串结尾的null字节,执行p2
-=1后,p2指向了字符串最后一个有效字符(null前面一个字符);
while(p1

评论
0

0

0

加载更多

⑥ c语言中,字符反转,怎么做(还没学指针)

你记录两个值:
1、单个字符串的开始和结束
2、比如例子中的I Love You,第一个字符串I开始和结束都是0,就不用换
3、然后到了空格(非字母也一样)也不用管继续往下走
4、到Love就是开始是2,结束时5,就把这个值传给一个交换函数
5、在交换函数中,把2-5 3-4转换,然后继续往下走....
6、这样循环到尾就好了。

⑦ C语言字符串逆转函数

  1. 只需要将字符数组的前后数据进行交换就行了。


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

    char*reverse(char*x)
    {
    inti,tem,len=strlen(x);
    intn=len/2;
    for(i=0;i<=n;i++)//前后交换数据
    {
    tem=x[i];
    x[i]=x[len-1-i];
    x[len-1-i]=tem;
    }
    returnx;
    }

    intmain()
    {
    charp[]="abcdefghijk";
    printf("relust=%s ",reverse(p));
    return0;
    }

⑧ c语言如何实现字符串的反转

#include<stdio.h>

void reverse(char s[])

{ int i,j;

char c;

for(i=0; s[i]; i++);

for(i--,j=0; j<i;)

{ c=s[j];

s[j++]=s[i];

s[i--]=c;

}

}

int main()

{ char s[200];

gets(s);

reverse(s);

puts(s);

return 0;

}

⑨ 输入多行字符串,把这些字符串逆序且反转输出(C语言)

1、先用字符串数组读取多行字符串,再挨着逆序反转输出即可。

2、例程:

voidmain(void){
charstr1[10];
inti,ln;//增加一个ln计长度吧
charstr2[10]="";//这里改了
charc[10];
gets(str1);
ln=strlen(str1);//增加一句测出你输入的长度
for(i=0;i<ln;i++){//用实际输入的长度控制
c[i]=str1[i];
str2[ln-1-i]=c[i];//用实际输入的长度控制
}
puts(str2);
printf(" ");
}

⑩ 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;
}

热点内容
pid算法调速 发布:2025-02-13 21:20:31 浏览:686
脚本中new 发布:2025-02-13 21:00:11 浏览:741
什么配置的笔记本电脑能玩神武 发布:2025-02-13 20:54:40 浏览:179
挑选云服务器需要注意什么 发布:2025-02-13 20:53:31 浏览:98
加密滴胶卡 发布:2025-02-13 20:30:48 浏览:275
javalogin 发布:2025-02-13 20:25:48 浏览:427
智联招聘无法上传照片 发布:2025-02-13 20:16:03 浏览:529
python元素替换list 发布:2025-02-13 20:03:48 浏览:773
windows系统账户名和密码是多少 发布:2025-02-13 20:03:02 浏览:531
我的世界带有商店服务器好吗 发布:2025-02-13 20:02:50 浏览:616