將字符串中的數字移動到串尾

問題描述:
將數組s中的所有數字字符移動到非數字字符之後,並保持所有數字字符和所有非數字字符原有的先後順序。

方法:將數字存放到t1數組,其他字符存放到 t2數組,然後合併;

編譯環境:vc++6.0

代碼

#include <stdio.h>

void fun1(char s[]);         //函數申明

int main()
{
	char a[60];
	printf("輸入字符串\n");
	gets(a);
	fun1(a);
	printf("排序後\n");
	puts(a);
	return 0;
}


void fun1(char s[])
{
	char t1[50],t2[50];                  
	int m=0,n=0,i;                        //m統計數字個數, //n統計字母個數
	for(i=0;s[i]!='\0';i++)
		if(s[i]>='0'&&s[i]<='9')
			t1[m++]=s[i];
		else t2[n++]=s[i];

	t1[m]='\0';                          //字符串結束符
	t2[n]='\0';

	for(i=0;i<n;i++)                   //將數組t1,t2合併到數組s
		s[i]=t2[i];
	for(i=0;i<m;i++)
		s[n+i]=t1[i];
}

測試案例:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章