输入一串字符,把数字提取出来放到原字符串的末尾,输出新的字符串,要求:不使用gets函数?

如题所述

第1个回答  2020-05-04
#include<stdio.h>
#include<string.h>
void main(){
char str[100000],temp[100000];
int i,count = 0;
printf("请输入一个字符串:");
scanf("%s",&str);
while(strlen(str)>sizeof(str)/sizeof(str[0])||strlen(str)<=0){
printf("你输入的字符超出范围!\n\n");
printf("请输入一个字符串:");
scanf("%s",&str);
}
printf("拼接后的字符串是:\n");
for(i=0;i<strlen(str);i++){
printf("%c",str[i]);
if((int)str[i]>=48&&(int)str[i]<=57){
temp[count]=(char)str[i];
count++;
}
}
for(i=0;i<count;i++){
printf("%c",temp[i]);
}
printf("\n");
}
第2个回答  2020-05-04
#include<stdio.h>
int main(){
char str[1000];
char t;
int n=0;
while(1){
scanf("%c",&t);
if(t=='\n')break;
str[n]=t;
n++;
}
int ni=n;
for(int i=0;i<n;++i){
if(str[i]>='0'&&str[i]<='9'){
str[ni]=str[i];
for(int j=i+1;j<=ni;j++){
str[j-1]=str[j];
}
--i;--n;
}
}
str[ni]='\0';
printf("%s",str);
return 0;
}
相似回答