C语言指针实现字符串的反转

题目要求:

编写程序:从键盘任意输入一个字符串,输出该字符串。

然后,将该字符串逆序存放后再输出,要求用字符指针完成。

代码:

//解法一
#include <stdio.h>
#include <string.h>
int main()
{
	char a[20] = {0}, b[20] = {0}, *p1, *p2;
	printf("任意输入一个字符串:");
	//memset(b, 0X00, sizeof(b));
	gets(a);
	p1 = a;
	p2 = b + strlen(a) - 1;
	for( ; *p1 != '\0'; p1++, p2--)
		*p2 = *p1;
	*p2='\0';
	printf("string a is: %s\n", a);
	printf("string b is: %s\n", b);
	return 0;
}

//解法二
#include <stdio.h>
#include <string.h>
#define MAXN 1000
void reverse(char* str)
{
    char* p = str + strlen(str)-1;
    char temp;
    while(str<p)
	{
		temp=*p;
		*p--=*str;
		*str++=temp;
	}
}
int main()
{
    char str[MAXN];
	printf("请输入一个字符串:\n");
    gets(str);
    reverse(str);
    printf("翻转后的字符串是:\n%s\n", str);
	return 0;
}
时间: 2024-11-06 06:41:37

C语言指针实现字符串的反转的相关文章

用c语言指针处理字符串

字符串的处理方法有两种:一种方法是使用字符数组处理字符串,另一种是方法是使用字符指针处理字符串. 后一种也是c语言比较常用的方法.下面我们来看一个列子: 1 #include<stdio.h> 2 int main() 3 { 4 char a[50],*str1,*str2; 5 char b[]="I am student."; 6 str1 = a; 7 str2 = b; 8 while((*str1=*str2)!='\0') 9 { 10 str1++; 11

网易云课堂程序设计入门--C语言第七周:指针与字符串学习笔记

====================================== 第七周:指针与字符串学习笔记 网易云课堂 程序设计入门–C语言 指针与字符串 学习笔记 ====================================== 7-1指针初步 7-1-1类型大小与取地址运算 sizeof是一个运算符 给出某个变量货类型在内存中所占据的字节数 sizeof(int); sizeif(i); double变量在内存中占据的空间是int变量的两倍 { int a; a =6; prin

[C语言]进阶|指针与字符串

------------------------------------------------------------------------------------ 回顾:[C语言]指针与字符串 指针的使用: /** * main.c by weiChen in 2015-5-4 */ #include <stdio.h> //定义函数体,使在main方法中能调用 void swap(int *pa, int *pb); void minmax(int c[], int len, int

嵌入式 Linux C语言(五)——指针与字符串

嵌入式 Linux C语言(五)--指针与字符串 一.字符串简介 1.字符串声明 声明字符串的方式有三种:字面量.字符数组.字符指针. 字符串字面量是用双引号引起来的字符序列,常用来进行初始化,位于字符串字面量池中,字符字面量是用单引号引起来的字符. 字符串字面量池是程序分配的一块内存区域,用来保存组成字符串的字符序列.多次用到一个字符串字面量时,字符串字面量池中通常只保存一份副本,一般来说字符串字面量分配在只读内存中,是不可变的,但是当把编译器有关字面量池的选项关闭时,字符串字面量可能生成多个

C语言之深入指针与字符串

<span style="font-family:KaiTi_GB2312;font-size:24px;">#include<stdio.h> #include<stdlib.h> //要使用malloc(),必须包含此库文件 void main() { char count, *ptr1, *p; ptr1 = malloc(27*sizeof(char)); ptr1[26] = 0;//字符串要加0 if (ptr1 == NULL) { p

C语言:通过指针对字符串进行拼接

// //  main.c //  Pointer_stringcat // //  Created by ma c on 15/8/2. //  Copyright (c) 2015年 bjsxt. All rights reserved. //  要求:使用指针连接字符串,并将连接后的字符串输出到屏幕上. #include <stdio.h> #include<string.h> void Pointer_stringcat(char *str1,const char *str

C语言指针

C语言指针 指针是什么? 指针也是一个变量,但是这个变量存储的是一个地址,指向一个存储单元.我们可以根据指针(地址)找到他所指的变量,并对这个变量进行操作(赋值等).通过C里面的取地址符号&和取所指内容的符号*可以很方便的表示指针以及指针所指的变量之间的关系 /* ============================================================================ Name C语言指针 : text.c Author : Version : C

11-C语言指针

一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int  n)函数调用完毕后,改变实参的值 l 分析:修改实参的值->找到存储空间->地址 二. 指针变量的定义 1. 定义的格式 l 类名标识符 *指针变量名; l int *p; 2. 先定义后赋值 l 简单取值 int a = 10; int *p; p = &a; printf("%d&q

C语言--指针(一)

#import <Foundation/Foundation.h> //交换函数 void swap(int x, int y) { printf("x=%d,y=%d",x,y); int temp = 0; temp = x; x = y; y = temp; printf("x=%d,y=%d",x,y); } // void swap2(int *x , int *y) { //不改地址,改地址对应的值 printf("x=%d,y=%