从键盘中输入四个字符串(每个字符串不超过20个字符),如果一个字符串中的每个字符都是数字0-9,则将每个字符串转换为整形数字,并加1输出,否则输出错误信息,使用指针访问数组,不能使用下标。
时间: 2023-05-30 22:02:32 浏览: 69
统计字符串中字母和数字个数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 20
int is_all_digits(char *str);
void add_one(char *str);
int main(void) {
char *strs[4];
int i;
for (i = 0; i < 4; i++) {
strs[i] = (char *) malloc((MAX_LEN + 1) * sizeof(char));
printf("Enter a string: ");
scanf("%s", strs[i]);
if (!is_all_digits(strs[i])) {
printf("Error: %s is not all digits.\n", strs[i]);
exit(EXIT_FAILURE);
}
}
for (i = 0; i < 4; i++) {
add_one(strs[i]);
printf("%s\n", strs[i]);
}
return 0;
}
int is_all_digits(char *str) {
while (*str != '\0') {
if (!isdigit(*str)) {
return 0;
}
str++;
}
return 1;
}
void add_one(char *str) {
int carry = 1;
int len = strlen(str);
int i;
for (i = len - 1; i >= 0; i--) {
int digit = str[i] - '0' + carry;
if (digit >= 10) {
digit -= 10;
carry = 1;
} else {
carry = 0;
}
str[i] = digit + '0';
}
if (carry == 1) {
memmove(str + 1, str, len + 1);
str[0] = '1';
}
}
阅读全文