C 언어 가 문자열 을 역순 으로 출력 하 는 실례
이 코드 는 잘못된 것 입 니 다.정확 한 것 은 맨 아래 에 있 습 니 다.서 두 르 지 마 세 요.저 는 제 잘못 을 보 여 드 리 는 것 뿐 입 니 다.하하.
#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
",*(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 부터 변화 하기 시 작 했 습 니 다.이 생각 은 틀 리 지 않 았 지만 무시 하 였 습 니 다.지침 은 주 소 를 바 꿀 권리 만 있 고 할당 값 은 문자열 을 완전히 바 꾸 었 습 니 다.그러면 포인터 가 처음에 중간 에 있 는 값 을 가리 킬 때 원래 a 문자열 의 중간 에 있 는 문자 가 바 뀌 었 습 니 다.그러면 포인터 p 가 중간 에 있 는 값 을 가리 킬 때 p 는 이미 변 화 된 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 언어 는 문자열 을 정수,정렬(역순)출력 으로 변환 합 니 다.문자열 이 숫자 로 바 뀌 었 습 니 다:'0'
숫자 가 문자열 로 바 뀌 었 습 니 다:+'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) //
{
assert(*str != NULL);
int sum = 0;
while(isdigit(*str))
{
sum = sum*10+*str-'0';
*str++;
}
return sum;
}
void Myitoa(char *str,int 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
",Myatoi(str1));
char str[100];
Myitoa(str,1235496);
printf("str = %s
",str);
return 0;
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.