スポンサーリンク

文字列を逆順に入れ替える関数

参考:[c言語]int型の数字を逆順に入れ替える(サンプルコード)

第一引数のstrの文字列を逆順に入れ替えます。

void revStr(char* str){
	int size = strlen(str);
	int i,j;
	char tmp = {0};
	
	for(i = 0, j = size - 1; i < size / 2; i++, j--){
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}
	
	return;	
}

ポイントは下記でしょうか。
for文で前方と後方から中央に1文字ずつ進めていき、
前と後ろで置換処理をします。

	for(i = 0, j = size - 1; i < size / 2; i++, j--){
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}

スポンサーリンク

サンプルコード

下記がサンプルコードになります。

$ cat sample.c
#include <stdio.h>
#include <string.h>


void revStr(char* str){
	int size = strlen(str);
	int i,j;
	char tmp = {0};
	
	for(i = 0, j = size - 1; i < size / 2; i++, j--){
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}
	
	return;	
}

int main(){
	char str[] = "After";
	printf("%s\n", str);
	
	revStr(str);	
	
	printf("%s\n", str);

	return 0;
}

下記が実行結果になります。
$ gcc -o sample sample.c
$ ./sample 
After
retfA

スポンサーリンク