【发布时间】:2018-02-03 04:26:46
【问题描述】:
我应该编写一个程序,将字符串中的元音替换为数字,不使用和使用指针。
我在每个switch语句中使用了注释的printf来调试我的程序,当字符串为:aeiou时的输出为:
4eiou
3iou
1ou
0u
2
在打印字符串的最后,它只打印一个空行,输出应该是:43102。
我做错了替换完整字符串,但我无法弄清楚。有人能帮我吗? 非常感谢!
#include <stdio.h>
void changes(char* ptr) {
while (*ptr != '\0') {
switch(*ptr) {
case 'a':
*(ptr)='4';
//printf("%s\n", ptr);
break;
case 'e':
*(ptr)='3';
//printf("%s\n", ptr);
break;
case 'i':
*(ptr)='1';
//printf("%s\n", ptr);
break;
case 'o':
*(ptr)='0';
//printf("%s\n", ptr);
break;
case 'u':
*(ptr)='2';
//printf("%s\n", ptr);
break;
default:
break;
}
ptr++;
}
//Print the string
printf("%s\n", ptr);
}
int main() {
char sString[51];
char *charPtr = NULL;
charPtr = &sString[0];
printf("Introduce a string: ");
scanf("%[^\n]s", sString);
changes(charPtr);
}
【问题讨论】:
-
请将代码格式化为代码。
标签: c arrays string pointers character