我是编程新手。我在这段代码中找不到错误。 我正在尝试将一些字符转换为数字。
程序要求输入消息,但我输入字符后什么也没有显示。
#include <stdio.h>
#define N 100
int main (void)
{
char message[N];
int i;
printf ("Enter a message: ");
for (i=0; i<N; i++){
scanf ("%c", &message[i]);
}
// characters are in the array
for (i=0; i<N; i++){
if (message[i]=='a')
message[i]='4';
if (message[i]=='b')
message[i]='8';
if (message[i]=='e')
message[i]='3';
if (message[i]=='i')
message[i]='1';
if (message[i]=='o')
message[i]='0';
if (message[i]=='s')
message[i]='5';
}
// characters are translated
for (i=0; i<N; i++)
printf ("%c ", message[i]);
// characters are printed
return 0;
}
最佳答案
您可以使用 scanf("%s",message); 轻松读取整个消息
这样您就不必等待输入所有 100 个字符,并且可以检查您提供的任何输入(可能少于 100 个字符)。同样,您可以使用 printf
printf("%s",message);
使用switch
根据不同情况进行字符变化。
switch(message[i]){
case 'a': message[i]='4';break;
...
}
不是循环所有 N
个字符,而是循环直到 strlen(message)
或 message[i]!='\0'
关于c - 数组和字符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47178888/