版主,原题要求.(不得调用字符串处理函数)!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
回复:(tianfengdipa)[求助]能解答吗?
以下是引用tianfengdipa在2006-6-3 22:33:00的发言:
1.对键盘输入的字符串逆序,逆序后的字符串仍保留在原数组中并输出.(不得调用字符串处理函数)
//为了避免把楼主惯坏,只给出函数。
void Strrev(char str[ ]) //负责将str[]逆序
{
int i=0,j=0;
while(str[j])j++;
while(i<--j)
{
char tmp;
tmp=str[i];str[i]=str[j];str[j]=tmp;
i++;
}
}
----------------解决方案--------------------------------------------------------
以下是引用tianfengdipa在2006-6-3 22:33:00的发言:
2.对键盘输入的两个字符串连接(不得调用字符串处理函数)
void Strcat(char dest[ ],char src[ ]) //将src串拼接在dest串后面
{
int i=0,j=0;
while(dest[j])j++;
while(src[i])dest[j++]=src[i++];
dest[j]='\0';
}
main()
{
char obj[40]="12345",src[ ]="上山打老虎";
Strcat(obj,src);
puts(obj);
}
----------------解决方案--------------------------------------------------------
.对键盘输入的字符串逆序,逆序后的字符串仍保留在原数组中并输出.(不得调用字符串处理函数)在原题上改!!!!!!!!!!!
#include <stdio.h>
#define N 100
void main()
{
char c[N];int t, i;
for (i=0;i<N/2;i++)
scanf("%s",c);
{
t=c[i];
c[i]=c[N-i-1];
c[N-i-1]=t;
}
printf("\n sorted array:\n");
for(i=0;i<N;i++)
printf("%s",c);
}
----------------解决方案--------------------------------------------------------
{
int i=0,j=0;
while(str[j])j++;
while(i<--j)
{
char tmp;
tmp=str[i];str[i]=str[j];str[j]=tmp;
i++;
}
}
好象不能输出,请完整写出程序
----------------解决方案--------------------------------------------------------
void Strrev(char str[ ])
{
int i=0,j=0;
while(str[j])j++;
while(i<--j)
{
char tmp;
tmp=str[i];str[i]=str[j];str[j]=tmp;
i++;
}
}
#include<stdio.h>
main( )
{
char s[]="a,b,c,d,e,f,g";
Strrev(s);
puts(s);
}
----------------解决方案--------------------------------------------------------
递归输出反序字符串
int PrintStrrev(char *p)
{
if(*p)
{
PrintStrrev(p+1);
putchar(*p);
}
}
----------------解决方案--------------------------------------------------------
既然有人这么写..那我也玩一个(耍帅.其实写了半天)
#include <stdio.h>
int i=0;int main(){char x;(i==0?(x=5,i=1):((x=getchar())!=10))&&main(),x!=5?putchar(x):getch();}
XP WIN-TC!
----------------解决方案--------------------------------------------------------