Tag: 字符串

如何从C中的字符串中提取子字符串?

我尝试使用strncmp但它只有在我给它一个特定数量的字节我想要提取时才有效。 char line[256] = This “is” an example. //I want to extract “is” char line[256] = This is “also” an example. // I want to extract “also” char line[256] = This is the final “example”. // I want to extract “example” char substring[256] 我如何提取“”之间的所有元素? 并把它放在变量substring?

删除C字符串中所有出现的字符 – 需要示例

InputString: “I am unwell” “We need to go to the doctor” “How long will it take?” 。 OutputString: I am unwell We need to go to the doctor How long will it take? 字符串需要清除所有出现的字符” 。我可以想到以下的批准 使用,strchr()函数查找第一次出现的” 将字符串中的所有字符移动一次位置。 重复步骤1和2,直到strchr()返回NULL指针。 我觉得这是解决这个问题的非常低效的方法。 我需要知道,如果还有其他方法可以实现这一目标吗? 伪代码或实际代码都将受到赞赏。

如何限制C中的scanf函数在输入太长时打印错误?

我想限制scanf函数,所以当我输入例如一个超过30个字符的char* array ,它将无法获取它并且我的输出将是错误的。 我有一个提示使用[^ n]或类似的东西,但我不明白该怎么做? 我知道我可以使用scanf(“%30s”..)但我不希望输入有效,只是错误。 任何帮助都会很棒。

如何使用字符串(字符数组)初始化字符指针,但是不使用整数数组的int指针?

如何使用字符串(字符数组)初始化char指针,但是int指针不是整数数组? 当我试着这个 int* a={1,2,3,4,5}; 它给出了一个错误说法 错误:标量对象’a’在初始化程序中需要一个元素 但, char* name=”mikhil” 工作得很好。

从函数返回一个字符串

我正在尝试在c上创建子字符串函数。 它必须返回“cdef”,但它什么都不返回。 我该如何解决? 谢谢。 #include #include #include char* substring( char *, int, int ); int main(){ char stuff[] = “abcdefghjklmnoprstuvyz”; printf(“%s\n”, stuff); printf(“%s\n”, substring(stuff, 2, 6)); getch(); return 0; } char* substring(char *text, int a, int b){ char nText[ba]; char tmp[2]; strcpy(nText, “”); for(int i=a; i<b; i++){ tmp[0] = text[i]; tmp[1] = '\0'; strcat(nText, tmp); […]

在较大的字符串中查找子字符串的位置

我创建了一个函数,该函数应该在较大的字符串中找到子字符串的第一个字符的数字位置。 我输出有一些问题,我不太清楚为什么。 这些问题包括每次返回-1而不是子串的整数位置。 我已经调试过,无法追踪function出错的地方。 这是函数应该执行的方式:如果我的字符串是“狗很快”而我正在搜索子字符串“dog”,则该函数应返回4.感谢chqrlie对循环的帮助。 这是function: int findSubString(char original[], char toFind[]) { size_t i, j; int originalLength = 0; int toFindLength = 0; originalLength = strlen(original) + 1; toFindLength = strlen(toFind) + 1; for (i = 0; i < toFindLength + 1; i++) { for (j = 0; j < originalLength + 1; j++) { […]

我对串(C)中的总线错误感到困惑

我觉得在使用C的一个字符串中交换两个字符时会感到困惑。当我将它设置为数组时,它会很好用: char strBase[8] = “acbdefg”; 在这种情况下,我可以交换任何角色。 但是当我将其设置为字符串时,它会触发总线错误: char *strBase = “acbdefg”; 非常感谢任何人都可以解释它或给我一些提示!

使用strtok从字符串中解析空标记

我的应用程序生成如下所示的字符串。 我需要将分隔符之间的值解析为单个值。 2342|2sd45|dswer|2342||5523|||3654|Pswt 我正在使用strtok在循环中执行此操作。 对于第五个标记,我得到5523.但是,我需要考虑两个分隔符之间的空值|| 同样。 根据我的要求,5523应该是第六个标记。 token = (char *)strtok(strAccInfo, “|”); for (iLoop=1;iLoop<=106;iLoop++) { token = (char *)strtok(NULL, "|"); } 有什么建议?

为什么建议在scanf格式字符串中添加前导空格?

我目前正在阅读这本书“初学者的C11编程”,并在scanf()章节中说: “始终在第一个控制字符串字符前添加前导空格,以确保准确的字符输入。” 如: scanf(” %s”, whatever); 控制字符串%s,前面有一个空格。 我知道这听起来很不言自明,但我并没有真正得到可能出错的地方,以及这个空间如何确保准确的字符输入。 提前致谢。

用于转义字符串的标准c库

是否有标准的C库函数来转义C字符串? 例如,如果我有C字符串: char example[] = “first line\nsecond line: \”inner quotes\””; 我想要打印 “first line\nsecond line: \”inner quotes\”” 是否有一个库函数可以为我做这个转换? 滚动我自己似乎有点傻。 奖励积分,如果我可以给它一个长度逃脱(所以它停止在\0之前或之外)。