1. 程式人生 > 其它 >day12_4_C語言_有一個字元陣列的內容為:“student a am i“, 請你將陣列的內容改為“i am a student“.

day12_4_C語言_有一個字元陣列的內容為:“student a am i“, 請你將陣列的內容改為“i am a student“.

技術標籤:C語言_家庭作業

有一個字元陣列的內容為:“student a am i”,
請你將陣列的內容改為"i am a student".
要求:
不能使用庫函式。
只能開闢有限個空間(空間個數和字串的長度無關)。

student a am i
i ma a tneduts
i am a student

#include <stdio.h>
int my_strlen(char* str)//計算字串長度
{
	int count = 0;
	while (*str!='\0')
	{
		count++;
		str++;
	}
	return count;
} void reverse(char* arr)//反轉字串 { int len = my_strlen(arr); char tmp = 0; char* left = arr+0; char* right = arr + len - 1; while (left < right) { tmp = *left; *left = *right; *right = tmp; left++; right--; } } void reverse_part(char* arr,char* left ,char* right)//部分反轉字串 { if (left!=
right) { char tmp = 0; while (left < right) { tmp = *left; *left = *right; *right = tmp; left++; right--; } } } int main() { char arr[] = "student a am i"; reverse(arr); //printf("%s\n",arr);//i ma a tneduts\0 char* left = arr+0; char* right = arr+0; char
* tmp = 0; while (1) { while (*right != ' ' && *right != '\0') { right++; } right--; reverse_part(arr, left, right); tmp = right; tmp++; if (*tmp == '\0') { break; } right += 2; left = right; } printf("%s\n", arr);//i am a student return 0; }