
求二级C语言问题,各种求,职业求,真心求,万分火急!!!!!
fun的功能:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数返回值,例如s为asd123fgh5##43df,处理后变为12...
fun的功能:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数返回值,例如s为 asd123fgh5##43df,处理后变为123543asdfgh##df
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[__1__]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<__2__; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return __3__;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}
2 改错题
#include <stdio.h>
#include <string.h>
void fun( char *a, char *b, char *c )
{
int i , j; char ch;
i = 0; j = strlen(b)-1;
/************found************/
while ( i > j )
{ ch = b[i]; b[i] = b[j]; b[j] = ch;
i++; j--;
}
while ( *a || *b ) {
/************found************/
If ( *a )
{ *c = *a; c++; a++; }
if ( *b )
{ *c = *b; c++; b++; }
}
*c = 0;
}
main()
{
char s1[100],s2[100],t[200];
printf("\nEnter s1 string : ");scanf("%s",s1);
printf("\nEnter s2 string : ");scanf("%s",s2);
fun( s1, s2, t );
printf("\nThe result is : %s\n", t );
}
3
fun的功能:将s所指下标为偶数同时ASCII为奇数的字符删除
#include <stdio.h>
#include <string.h>
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];void NONO ();
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
char s[100], t[100] ;
FILE *rf, *wf ;
int i ;
rf = fopen("K:\\C3145\\24A01002\\in.dat","r") ;
wf = fopen("K:\\C3145\\24A01002\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", s) ;
fun(s, t) ;
fprintf(wf, "%s\n", t) ;
}
fclose(rf) ;
fclose(wf) ;
} 展开
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[__1__]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<__2__; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return __3__;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}
2 改错题
#include <stdio.h>
#include <string.h>
void fun( char *a, char *b, char *c )
{
int i , j; char ch;
i = 0; j = strlen(b)-1;
/************found************/
while ( i > j )
{ ch = b[i]; b[i] = b[j]; b[j] = ch;
i++; j--;
}
while ( *a || *b ) {
/************found************/
If ( *a )
{ *c = *a; c++; a++; }
if ( *b )
{ *c = *b; c++; b++; }
}
*c = 0;
}
main()
{
char s1[100],s2[100],t[200];
printf("\nEnter s1 string : ");scanf("%s",s1);
printf("\nEnter s2 string : ");scanf("%s",s2);
fun( s1, s2, t );
printf("\nThe result is : %s\n", t );
}
3
fun的功能:将s所指下标为偶数同时ASCII为奇数的字符删除
#include <stdio.h>
#include <string.h>
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];void NONO ();
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
char s[100], t[100] ;
FILE *rf, *wf ;
int i ;
rf = fopen("K:\\C3145\\24A01002\\in.dat","r") ;
wf = fopen("K:\\C3145\\24A01002\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", s) ;
fun(s, t) ;
fprintf(wf, "%s\n", t) ;
}
fclose(rf) ;
fclose(wf) ;
} 展开
2个回答
展开全部
第一题
1、p[j]
2、i<n
3、return p
第二题
你没说题目要求..我不知道改成什么样就算对的。。
1、没改
2、If改成if
输入123回车abcd回车
输出结果为1a2b3cd
第三题
void fun(char *s, char t[])
{
int i=0;
int j=0;
while (*(s+i)!='\0')
{
if(i%2!=0) //判断下标是否为偶数
if(*(s+i)%2==0) //判断ASCII是否为奇数
t[j++]=*(s+i);//复制串
i++;
}
t[j]='\0';
}
不敢说完全正确。。我没查ascII对应没有
1、p[j]
2、i<n
3、return p
第二题
你没说题目要求..我不知道改成什么样就算对的。。
1、没改
2、If改成if
输入123回车abcd回车
输出结果为1a2b3cd
第三题
void fun(char *s, char t[])
{
int i=0;
int j=0;
while (*(s+i)!='\0')
{
if(i%2!=0) //判断下标是否为偶数
if(*(s+i)%2==0) //判断ASCII是否为奇数
t[j++]=*(s+i);//复制串
i++;
}
t[j]='\0';
}
不敢说完全正确。。我没查ascII对应没有
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询