gpt4 book ai didi

c - 获取字符串直到第一个数字

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:11 26 4
gpt4 key购买 nike

我需要从数组中获取第一个数字之前的所有字符。我这样做了,它似乎工作正常:

#include <stdio.h>

int main() {
char temp[128] = {0};
char str_active[128] = {0};

sprintf(temp, "%s", "AB01");
printf("Complete string.: %s\n", temp);

int len = sizeof(temp) / sizeof(char);
int index = 0;
while (index < len) {
if (isdigit(temp[index])) {
break;
} else {
index++;
}
}
snprintf(str_active, index + 1, "%s\n", temp);
printf("String before first digit.: %s\n", str_active);

return 0;
}

我想知道我是否可以用更少的指令以更好的方式做同样的事情。

最佳答案

strcspn 函数可以为您完成:

The strcspn() function calculates the length of the initial segment of s which consists entirely of bytes not in reject.

#include <stdio.h>
#include <string.h>

int main() {

char temp[128] = {0};
char str_active[128] = {0};

sprintf(temp, "%s", "AB01");
printf("Complete string.: %s\n", temp);

strncpy(str_active, temp, strcspn(temp, "0123456789"));
printf("String before first digit.: %s\n", str_active);

return 0;
}

关于c - 获取字符串直到第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53520967/

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