gpt4 book ai didi

C - 如何检查不需要的字符是否在数组中?

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:16 24 4
gpt4 key购买 nike

我有一个关于字符串数组的问题。

我正在尝试找到一种方法来检查字符串中是否包含不需要的字符。

测试数组必须只包含这 8 个选项之一:{'A','a','C','c','G','g','T','t'}

在此检查过程之前删除所有空格。

如果我有两个数组A = {AGctcgtacgtacg}B = {CGTAagctFcg}

A 应该通过测试,而 B 应该失败,因为其中有“F”。

我正在考虑使用 for 循环遍历数组的每个元素并尝试检查该字符是否是选项之一。

const char test[] = {'A','a','C','c','G','g','T','t'};
int l = strlen(A);
char A[] = {AGctcgtacgtacg}
char B[] = {CGTAagctFcg}
for (i = 0; i < l; i++){
if (A[i] is one of the characters in test){
do nothing... (keep checking)
}
else{
break;
printf("Error: the array contains unwanted character.");
exit(1);
}
}

最佳答案

您可以使用标准 C 函数 strspn在 header 中声明 <string.h>检查字符串是否仅包含有效字符。

例如

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

int main( void )
{
const char *test = "AaCcGgTt";
char A[] = "AGctcgtacgtacg";
char B[] = "CGTAagctFcg";

if (A[strspn(A, test)] == '\0')
{
puts("Array A has valid characters");
}
else
{
puts("Array A has invalid characters");
}

if (B[strspn(B, test)] == '\0')
{
puts("Array B has valid characters");
}
else
{
puts("Array B has invalid characters");
}
}

程序输出为

Array A has valid characters
Array B has invalid characters

如果您还需要知道第一个无效字符的位置,那么您可以这样写

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

int main()
{
const char *test = "AaCcGgTt";
char A[] = "AGctcgtacgtacg";
char B[] = "CGTAagctFcg";
size_t n;

if (A[n = strspn(A, test)] == '\0')
{
puts("Array A has valid characters");
}
else
{
puts("Array A has invalid characters");
printf("Invalid character is %c at position %zu\n", A[n], n);
}

if (B[n = strspn(B, test)] == '\0')
{
puts("Array B has valid characters");
}
else
{
puts("Array B has invalid characters");
printf("Invalid character is %c at position %zu\n", B[n], n);
}
}

程序输出为

Array A has valid characters
Array B has invalid characters
Invalid character is F at position 8

关于C - 如何检查不需要的字符是否在数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42562265/

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