gpt4 book ai didi

c - 在c中没有strtok的情况下用字符分割字符串

转载 作者:行者123 更新时间:2023-11-30 21:27:30 24 4
gpt4 key购买 nike

我需要编写代码,将 jasf@fjaf@afsj 等字符串读取为单维字符串,然后要求分隔符(例如:@) >) 因此它将获得二维输出,并且对于每一行,它将是分隔字符之间的单词,例如:

jasf
fjaf
afsj

我尝试过:

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

void main {
int s, k, b;
printf("please enter a long string\n");

gets(longstring);
s = strlen(longstring);
printf("please choose seperationg charcter\n");
scanf("%c", &ch);

if ((ch < 'A') || ((ch > 'Z') && (ch < 'a')) || (ch > 'z')) {
for (k = 0; k < s; k++) {
for (b = 0; longstring[k] == ch; ++b) {
strcpy(mat[b], longstring);
}
}
puts(mat[b]);
}

最佳答案

您的代码不完整:main 的函数定义缺少其参数列表,这在 C 中不是可选的,longstring 未定义等。

此外,您的方法太复杂:如果目标只是为分隔符之间的字符串的每个部分输出一行,则不需要测试字母。

这是一个简单的解决方案:

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

int main() {
char longstring[256];
int i, len;
char sep;

printf("please enter a long string\n");
if (fgets(longstring, sizeof longstring, stdin)) {
len = strlen(longstring);
printf("please choose a separationg character: ");
if (scanf("%c", &sep) != 1)
return 1;

for (i = 0; i < len; i++) {
if (longstring[i] == sep)
putchar('\n');
else
putchar(longstring[i]);
}
}
return 0;
}

关于c - 在c中没有strtok的情况下用字符分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230963/

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