gpt4 book ai didi

c - 文本和分隔符的操作

转载 作者:行者123 更新时间:2023-11-30 20:35:49 25 4
gpt4 key购买 nike

任务是:从文件读取文本并从键盘读取分隔符数组。然后程序应该搜索文本中的分隔符序列,如果找到 3 次或更多,则将所有奇数字符串交换成一个圆圈。它还应该检测用户输入的所有超过长度限制的单词,但仅限于奇数字符串。这就是我现在所拥有的:

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

int main(void)
{
setlocale(LC_ALL, "Russian"); //entering the text
const int numberOfCharactersToRead = 128;
char* inputText = (char*)(malloc(sizeof(char) * numberOfCharactersToRead));
FILE *fp;
fopen_s(&fp, "D:\texxxt.txt", "r");
if (fp == NULL)
{
printf("nFile not foundn");
system("pause");
return 0;
}
fgets(inputText, numberOfCharactersToRead, fp);
printf("Enter the sequence of delimiters: "); //entering delimiters
const int numberOfDelimitersToRead = 6;
char* delimiters = (char*)(malloc(sizeof(char) * numberOfDelimitersToRead));
int indexer = 0;
for (indexer = 0; indexer < numberOfDelimitersToRead; indexer++)
{
delimiters[indexer] = getchar();
}
//Trying to use strtok in order to devide text into rows (unsuccesful)
char delims[] = "/n";
char *pch = strtok_s(NULL, inputText, &delims);
printf("nLexems:");
while (pch != NULL)
{
printf("n%s", pch);
pch = strtok_s(NULL, inputText, &delims);
}
return 0;
}

int symcount(void)
{ //function searching the quantity of delimiters
char str[20], ch;
int count = 0, i;
printf("nEnter a string : ");
scanf_s("%s", &str);
printf("nEnter the character to be searched : ");
scanf_s("%c", &ch);
for (i = 0; str[i] != ''; i++)
{
if (str[i] == ch)
count++;
}
if (count == 0)
printf("nCharacter '%c'is not present", ch);
else
printf("nOccurence of character '%c' : %d", ch, count);
return (0);
}

我真的不知道如何将文本分成行以及如何使我的程序区分偶数和奇数字符串。我真的很困惑

最佳答案

strtok_s的定义如下:

char *strtok_s(char *strToken, const char *strDelimit, char **context);

您混淆了参数。第一个参数应该是指向输入字符串的指针,第二个参数应该是分隔符字符串。最后,在执行该函数后,将向第三个参数传递一个指向找到分隔符的位置之后的字符串的指针,如果未找到分隔符,则传递 NULL 。然后可以将该指针传递给下一个 strtok_s 调用以继续搜索。

char *pchNext;
char *pch = strtok_s(inputText, delimiters, &pchNext);

while (pch != NULL)
{
printf("\n%s", pch);
pch = strtok_s(NULL, delimiters, &pchNext); // The first parameter can be NULL here
}

此外,换行符的文本表示是 \n,而不是 /nn

关于c - 文本和分隔符的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658219/

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