最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言 將字符串逆序輸出的實例

 更新時間:2021年02月20日 09:42:01   作者:咕嘟咕嘟520  
這篇文章主要介紹了C語言將字符串逆序輸出的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

將字符串逆序輸出:我先說一個我的錯誤代碼,一開始真的不知道哪里錯了,但是當(dāng)時的想法是自以為是可以的,大家可以先看看我的錯誤代碼

這個代碼是錯誤的,正確的在最下方,不要急,我只是展示一下自己的錯誤,哈哈

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
void reverse(char a[])
{
  char *p=a,*q=a,c;
  int i;
  while(*p!='\0')
    p++;
  p--;//此刻p指向最后一個元素
//  while(p>q)
//  {
//    c=*p;
//    *p=*q;
//    *q=c;
//    p--;
//    q++;
//  }
  i=0;
  for(i=0; p>=q; i++)
  {
    a[i]=*(p);//代碼就是這里出的錯,在下面解釋一下
    printf("*(p)==%c a[%d]==%c\n",*(p),i,a[i]);
    p--;
  }
}
int main()
{
  char a[100];
  scanf("%s",a);
  reverse(a);
  printf("%s",a);
  return 0;
}

上面代碼:我一開始想著,定義一個指針p,然后先將指針指向最后一個元素,然后慢慢往回(前面)指,再將指針p指向的值賦給a[i],i從0開始變化,這個想法其實沒有錯,但是卻忽略了,指針只有改變地址的權(quán)利,而賦值則是將字符串完全改變了,那么指針一開始指向中間靠后的值的時候,原來a字符串里面中間靠前的字符就會改變(因為是逆著賦值的),那么到了指針p指向中間靠前的時候,p指的是已經(jīng)變化過的a中的字符值啦。

那么問題來了,怎樣做呢,將對稱位置的字符交換即可。

下面是正確代碼,比較簡單,不做過多介紹啦

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
void reverse(char a[])
{
  char *p=a,*q=a,c;
  int i;
  while(*p!='\0')
    p++;
  p--;//此刻p指向最后一個元素
  while(p>q)
  {
    c=*p;
    *p=*q;
    *q=c;//交換對稱位置的字符值
    p--;
    q++;
  }
}
int main()
{
  char a[100];
  scanf("%s",a);
  reverse(a);
  printf("%s",a);
  return 0;
}

補充:C語言 將字符串轉(zhuǎn)化成整數(shù),正序(逆序)輸出

字符串轉(zhuǎn)化為數(shù)字:—‘0'

數(shù)字轉(zhuǎn)化為字符串:+‘0'

#include <stdio.h>
#include <stdlib.h>
#include <vld.h>
#include <assert.h>
#include <ctype.h>
#include <string.h> 
void Reverse(char *str)  //逆序
{
	char *p = str;
	while(*p != '\0')  //找到\0
	{
		p++;
	}
	p--;  //\0前一位
 
	int temp;
	while(str < p)  
	{
		temp = *str;  //交換
		*str = *p;
		*p = temp;
		str++;
		p--;
	}
} 
 
int Myatoi(const char *str)  //字符串轉(zhuǎn)化為數(shù)字
{
	assert(*str != NULL);
	int sum = 0;
	while(isdigit(*str))
	{
		sum = sum*10+*str-'0';
		*str++;
	}
	return sum;
}
 
void Myitoa(char *str,int n)  //數(shù)字轉(zhuǎn)化為字符串
{
	assert(*str != NULL);
	int i = 0;
	do{
		str[i++] = n % 10 + '0'; 
		n /= 10;
	}while(n != 0);
	str[i] = '\0';
//	Reverse(str);
}
 
int main()
{
	char str1[100] = "1a2";
	printf("num = %d\n",Myatoi(str1));
	char str[100];
	Myitoa(str,1235496);
	printf("str = %s\n",str);
 
	return 0;
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 詳解Qt使用QImage類實現(xiàn)圖像基本操作

    詳解Qt使用QImage類實現(xiàn)圖像基本操作

    這篇文章主要介紹了Qt如何利用QImage類實現(xiàn)對圖像的基本操作,包括圖像顯示、圖像縮放、圖像旋轉(zhuǎn)等,感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-06-06
  • CMake自動管理C/C++項目的實現(xiàn)

    CMake自動管理C/C++項目的實現(xiàn)

    CMake是一個強大的構(gòu)建系統(tǒng),用于跨平臺管理C/C++項目的編譯過程,本文主要介紹了CMake自動管理C/C++項目的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)通用數(shù)據(jù)庫采集

    Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)通用數(shù)據(jù)庫采集

    這篇文章主要為大家介紹了Qt中是如何實現(xiàn)通用數(shù)據(jù)庫采集的,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Qt有一定幫助,感興趣的小伙伴可以了解一下
    2022-03-03
  • 詳解應(yīng)用程序與驅(qū)動程序通信DeviceIoControl

    詳解應(yīng)用程序與驅(qū)動程序通信DeviceIoControl

    這種通信方式,就是驅(qū)動程序和應(yīng)用程序自定義一種IO控制碼,然后調(diào)用DeviceIoControl函數(shù),IO管理器會產(chǎn)生一個MajorFunction為IRP_MJ_DEVICE_CONTROL,MinorFunction為自己定義的控制碼的IRP,系統(tǒng)就調(diào)用相應(yīng)的處理IRP_MJ_DEVICE_CONTROL的派遣函數(shù)
    2021-06-06
  • C語言實現(xiàn)車票管理系統(tǒng)

    C語言實現(xiàn)車票管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)車票管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運算符的重載

    詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運算符的重載

    這篇文章主要介紹了詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運算符,講到了這些二元運算符使用的語法及重載,需要的朋友可以參考下
    2016-01-01
  • 解析如何用指針實現(xiàn)整型數(shù)據(jù)的加法

    解析如何用指針實現(xiàn)整型數(shù)據(jù)的加法

    本篇文章是對用指針實現(xiàn)整型數(shù)據(jù)加法的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解C++11中模板的優(yōu)化問題

    詳解C++11中模板的優(yōu)化問題

    這篇文章主要介紹了C++11中模板的優(yōu)化問題,通過實例代碼得出結(jié)論,當(dāng)所有模板參數(shù)都有默認(rèn)參數(shù)時,函數(shù)模板的調(diào)用如同一個普通函數(shù),具體示例代碼跟隨小編一起看看吧
    2021-09-09
  • C++數(shù)據(jù)結(jié)構(gòu)哈希表詳解

    C++數(shù)據(jù)結(jié)構(gòu)哈希表詳解

    C++標(biāo)準(zhǔn)庫中使用的unordered_map底層實現(xiàn)是哈希表,下面這篇文章主要給大家介紹了關(guān)于C++中使用哈希表(unordered_map)的一些常用操作方法,需要的朋友可以參考下
    2022-07-07
  • C語言進(jìn)階之內(nèi)存操作函數(shù)詳解

    C語言進(jìn)階之內(nèi)存操作函數(shù)詳解

    這篇文章主要為大家學(xué)習(xí)介紹了C語言中內(nèi)存操作函數(shù)(memcpy、memmove和memcmp)的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07

最新評論

南康市| 循化| 青河县| 伊金霍洛旗| 尤溪县| 永州市| 微博| 嘉鱼县| 酉阳| 廉江市| 绥中县| 井冈山市| 安塞县| 文水县| 禹州市| 错那县| 金溪县| 上虞市| 蕲春县| 周口市| 岱山县| 进贤县| 昌乐县| 长阳| 左贡县| 沁水县| 噶尔县| 武穴市| 扶余县| 珲春市| 女性| 乌什县| 合川市| 汝州市| 林口县| 抚宁县| 西乡县| 谷城县| 铁岭市| 和田县| 蚌埠市|