gpt4 book ai didi

C 编程传递字符函数

转载 作者:行者123 更新时间:2023-11-30 16:34:20 25 4
gpt4 key购买 nike

 #include <stdio.h>
#include <string.h>
#define SIZE 200

void check(char str[]);

void check(char str[]){
/* checking if the characters entered are digits */
int i;
int j=0;
char tel[10];

for(i = 0; str[i] != '\0'; i++){
if(str[i] >= '0' && str[i] <= '9'){
tel[j++] = str[i];
}
}
tel[j] = '\0';

/* checking if length of zip code is less than 5 digits */
if(strlen(tel) < 5)
printf("Not enough digits on input!");


/* if length of zip code is 5 digits */
else if (strlen(tel) == 5){
printf("\nProgram Output: ");
printf("(");

/* formating zip code with parenthesis around zip */
for(i = 0; tel[i] != '\0' && i < 5; i++){
printf("%c", tel[i]);
}
printf(")");
};
}

int main(){

/* variable declaration */
char str[SIZE];

printf("Enter a zip code: ");
scanf("%s", str);

check(str);

return 0;
}

我正在编写一个简单的 C 代码,用于验证用户提供的 5 个字符的邮政编码字符串。如果少于 5 个字符,程序将输出错误消息。如果正好 5 个字符,请在邮政编码两边加上括号。

当我测试我的代码时,只有我的错误消息有效。当我输入 5 个字符时,我的“else if”参数没有被执行。这是我将 char 输入传递给函数的方式吗?

最佳答案

When I test my code, only my error message works. My 'else if' parameter isn't being executed when I input 5 characters. Is it the way I'm passing the char input to my function?

没有。这是因为您正在使用缓冲输出。 printf将其输出存储在内部缓冲区中,直到缓冲区已满或必须打印新行 \n 。您的程序在 printf 之前退出有机会将缓冲区刷新到输出。您需要终止您的最终printf\n .

printf(")\n");

无论如何,你确实需要一个新行,否则,如果它确实打印出来,下一个 shell 提示符将在同一行。

关于C 编程传递字符函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com