新蜂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'中的內容。 –