你用的是VC吧
可是我调试过的啊。
那你可以这样试试/
把第2个循环语句中的循环初始化改成i=strlen(a)-1看看
想报错误的话就在while循环里加一个条件语句
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
{printf("\n你输入的的不是有效字符");
continue;}
[此贴子已经被作者于2006-3-29 17:18:00编辑过]
马马乎乎
你用的是VC吧
可是我调试过的啊。
那你可以这样试试/
把第2个循环语句中的循环初始化改成i=strlen(a)-1看看
想报错误的话就在while循环里加一个条件语句
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
{printf("\n你输入的的不是有效字符");
continue;}
哈哈。。
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
要還加個括號,把!括進去。
我試過了。 不過這個程序好像不能即時報錯。
比如說。
我輸入:windows4xp回車後他才會提示有錯誤。
我想問問。怎麼才能輸到4的時候不回車就提示有錯。並終止程序運行呢?
/*為了即時報錯,我改了一下*/
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
int i=0;
while(a[i]!='\n')
{
i++;
scanf("%c",&a[i]);
if(! ((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n')))
{
printf("\n你输入的%c不是有效字符",a[i]);
break;
}
fflush(stdin);
}
a[i]='\0';
for(i=strlen(a);i>=0;i--)
printf("%c",a[i]);
printf("\n");
}
/*但是必須輸一個字付敲一個回車,不知道朋友有沒有更好的方法*/
[此贴子已经被作者于2006-3-30 1:24:19编辑过]
#include <conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i=0 ;
struct text_info ti; //使用了text_info 可以为以增添功能做准备
while(i<99)
{
a[i]=getch();
putch(a[i]);
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))i++;
else
if(a[i]==13){i++;break;}
else
{
gettextinfo(&ti);
gotoxy(10,10);
printf("\n你输入的%c不是有效字符\n继续....\n",a[i]);
gotoxy(ti.curx-1,ti.cury);
}
}
a[i]='\0' ;
puts(a);
return 0 ;
}
五楼的方法我看不懂,不知道谁能帮忙解释一下,我不胜感激。
但我改二楼的方法,程序如下:
#include <stdio.h>
#include <string.h>
#include<conio.h>
void main()
{ clrscr();
char p[50],*q;
int i,j,t=0;
gets(p);
j=strlen(p);
q=j+p-1;
for(i=1;i<=j;i++)
if((p[i]<'A')||(p[i]>'z')||(p[i]>'Z')&&(p[i]<'a'))
{printf("ERROR!");t=1;break;}
if(t==1);
else
{while(q>=p)
{printf("%c",*q--);}}
printf("\n");
getch();
}