新蜂C.这是我的代码(它从一个字符串替换字符):scanf函数,没有开关的情况下执行
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main()
{
char str[100], r, ra;
printf("enter string");
gets(str);
int length;
length= strlen(str);
printf("length of string is %d",length);
printf("\nenter the the character that will replace");
scanf("%c",&r);
printf("where to replace\n b...begning\ne....ending\np....position");
scanf("%c",&ra);
int pos;
switch(ra)
{
case 'b' : str[1]=r; break;
case 'e' : str[length-1] = r; break;
case 'p' : printf("enter position");
scanf("%d",pos);
if(pos<1 || pos>length-1)
printf("please enter a position between 1 and %d",length-1);
else
str[pos]= r;
break;
}
printf("\n after replacing string is %s", str);
getche();
}
的问题是,IDE不编译这部分程序,我知道我正在做一些错误的事情,但无法弄清楚什么?需要帮助。
scanf("%c",&ra);
int pos;
switch(ra)
{
case 'b' : str[1]=r; break;
case 'e' : str[length-1] = r; break;
case 'p' : printf("enter position");
scanf("%d",pos);
if(pos<1 || pos>length-1)
printf("please enter a position between 1 and %d",length-1);
else
str[pos]= r;
break;
}
“IDE不编译这部分程序”:你是什么意思?它给出了一个错误消息?还有别的吗?请与我们分享。 –
我猜你正在使用Visual Studio,是否正确?不要使用'gets()',这很危险。改用'fgets()'。 –
怀疑编译器“不编译”你的程序的一部分不是很有效率。这当然不是你所观察到的。您发现程序不会执行您编程的任何情况。有一个简单的方法可以知道执行的地方,在那里:添加一个'default'事件,并在那个时候打印出'ra'中的内容。 –