구분 기호 쌍 사이의 하위 문자열을 추출합니다.
分隔符是将字符串与其他字符分开的字符,例如在我们日常阅读活动中的句子中,我们通过空格分隔出不同的单词。在数学和正则表达式中,我们使用()括号作为主要的分隔符。
子字符串及其操作的概念在编程中非常重要,特别是在用于编写编译器和汇编器的C语言中。在字符串中识别定界符,并将起始定界符后的字符复制到另一个变量中,直到结束定界符。
== 和 != 运算符可用于比较字符串中的字符和用户指定的分隔符字符。
使用scanf()函数从用户接受一个字符串,所以空格不能作为字符串的一部分。如果使用puts()或其他函数或方法,可能会得到一个高级版本。
该程序使用数组和字符串处理的基本概念,而不使用头文件中可用的任何字符串函数。可以使用字符串比较、字符串复制函数,但作为简单逻辑的练习,该程序是使用非常基本的逻辑完成的。
Methods Used
的中文翻译为:使用的方法
方法一:使用 substring()
方法2:使用函数
两种方法各有其优点。方法1是一种直接的解决方案,帮助用户理解字符串操作的过程,而方法2通过使用函数促进更好的软件设计原则和可维护性。
语法
在 C 编程语言中提取任意一对分隔符之间的子字符串是一项常见的编程任务。提取子串的方法可以根据具体的问题要求和约束而变化。尽管如此,一种广泛使用的技术是利用 C 标准库中的 strtok() 函数。该函数用于根据指定的分隔符将字符串分解为一系列标记。该函数将原始字符串和分隔符作为输入,并返回指向字符串中找到的第一个标记的指针。要提取所有子字符串,可以使用空指针作为第一个参数重复调用该函数以获得后续标记。字符串的结尾由 strtok() 函数返回的空指针指示。
char *strtok(char *str, const char *delim);
算法
步骤 1 - 声明 str1,str2,delim1,delim2 初始化为 null。
第 2 步 - 声明整型变量 len、n、I、subs
步骤 3 - 从控制台接收 str1、delim1 和 delim2
第 4 步 - 检查长度并将其存储在 len
步骤 5 - 当 n<输入字符串长度 len 时,检查 str1[n] 是否等于 delim1
第 6 步 - 如果是,则 subs=n,打破循环
步骤 7 − 当 str1[subs] != delim2 时,使 n=0
第 8 步 - 将 delim1 后的 str1 复制到 str2,str2[n] = str1[subs],递增 n 和 subs
步骤 9 - 打印 str2,其中输入字符串减号 ()。
方法一:使用substring()
对于字符串的简单逐步数组操作的实现具有几个优点。它直观且易于理解,这对于初学者或正在学习编程的人来说是有益的。这种方法允许用户看到程序用于操作字符串的确切过程。然而,正如前面提到的,这种方法有一些限制,例如不接受带有空格的字符串,并且将长度限制为20个字符。使用gets方法,您可以克服字符串大小的限制,但值得注意的是,由于潜在的缓冲区溢出和安全风险,gets方法已被弃用。
Example
的中文翻译为:示例
这段代码构成了一个软件,它基于两个分隔符提取字符串的一部分。第一个分隔符指定了子字符串的开始,第二个分隔符定义了其结束。输入字符串存储在str1变量中,两个分隔符定义为delim1和delim2变量。提取的子字符串保存在str2变量中。程序首先使用第一个分隔符识别子字符串的起始位置,然后通过计算从起始位置到第二个分隔符定义的结束位置的字符数量来计算其长度。然后调用Substring函数从原始字符串中提取子字符串并将其存储在str2变量中。提取的子字符串然后显示在屏幕上。
#include <stdio.h> #include <string.h> void Substring(char *str2, const char *str1, int start, int n) { strncpy(str2, str1 + start, n); } int main() { // Predefined input values char str1[] = "Hello[world]!"; char delim1 = '['; char delim2 = ']'; char str2[100]; int len1 = strlen(str1); int start, subs, n = 0; // Getting the position of substring based on delimiter while (n < len1) { if (str1[n] == delim1) { subs = n; break; } n++; } start = n; // Getting the length of substring if (str1[subs] == delim1) { n = 0; subs++; while (str1[subs] != delim2) { subs++; n++; } Substring(str2, str1, start + 1, n); } // Adding null character at the end str2[n] = '\0'; printf("<span>\</span>nSub string is %s", str2); return 0; }
输出
Sub string is world
方法二:函数
使用函数来实现程序可以提供更模块化和有组织的解决方案。它将代码分解为较小、可重用的部分,可以独立进行测试和调试。这种方法促进了更好的软件设计原则和代码可读性。通过创建函数,您还可以轻松扩展程序的功能并提高其可维护性。
Example
的中文翻译为:示例
此代码构成了一个 C 软件,用于提取定义的字符串的一部分。该字符串被声明为字符数组,并且分隔符在主函数中预先指定。 Getpos 函数用于确定字符串中第一个分隔符 (delim1) 的位置。 Copystr 函数用于将两个分隔符(delim1 和 delim2)之间的字符复制到新字符串中。原始字符串的长度是使用 string.h 库中的 strlen 函数计算的。然后使用 printf 函数将子字符串显示在屏幕上。
#include <stdio.h> #include <string.h> void Getpos(char *str1, int len1, char delim1, int *subs) { int n = 0; while (n < len1) { if (str1[n] == delim1) { *subs = n; break; } n++; } } void Copystr(char *str1, char *str2, char delim1, char delim2, int subs) { if (str1[subs] == delim1) { int n = 0; subs++; while (str1[subs] != delim2) { str2[n] = str1[subs]; subs++; n++; } } } int main() { // Predefined input values char str1[] = "Hello[world]!"; char delim1 = '['; char delim2 = ']'; char str2[100]; int len1, subs; len1 = strlen(str1); Getpos(str1, len1, delim1, &subs); Copystr(str1, str2, delim1, delim2, subs); str2[strlen(str2)] = '\0'; printf("<span>\</span>nSub string is %s", str2); return 0; }
输出
Sub string is world
结论
C 中的字符串以字符的形式存储在内存中,字符串中的每个字符或字母都可以单独访问和处理。字符串的数组操作可以轻松地对字符串执行各种操作,如连接、反转,查找回文等等。这种灵活性使其在文件操作和最小内存使用方面非常有用。
위 내용은 구분 기호 쌍 사이의 하위 문자열을 추출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











대용량 파일은 장치, 특히 스마트폰 등 간에 공유하기 어려운 경우가 많습니다. 따라서 이러한 파일은 먼저 RAR 파일로 보관/압축된 다음 공유를 위해 다른 장치로 전송됩니다. 그런데 문제는 아이폰에서는 RAR 파일 추출이 쉽지 않다는 점이다. zip 파일을 추출하려면 탭 한 번만 하면 됩니다. iPhone에서 RAR 파일을 추출하는 과정을 아는 사람은 많지 않으며, 초보자에게는 단계가 혼란스러울 수 있습니다. 이 작업은 바로가기라는 iPhone의 기본 앱을 사용하여 수행할 수 있습니다. 여기에서는 단축어 앱을 사용하여 iPhone에서 RAR 파일을 추출하는 방법을 단계별로 설명합니다. iPhone에서 RAR 파일을 추출하는 방법 1단계: 먼저,

MySQL에서 LOCATE 함수를 사용하여 문자열에서 하위 문자열의 위치를 찾는 방법 MySQL에는 문자열을 처리하는 데 사용할 수 있는 함수가 많이 있습니다. 그 중 LOCATE 함수는 문자열에서 부분 문자열의 위치를 찾는 데 사용할 수 있는 매우 유용한 함수입니다. LOCATE 함수의 구문은 다음과 같습니다. LOCATE(substring,string,[position]) 여기서 substring은 찾을 하위 문자열이고 string은 찾을 하위 문자열입니다.

iOS 16에서 선택할 수 있는 숫자 형식 iOS 16.4(베타 2)의 변경 사항으로 인해 iPhone에 대해 세 가지 숫자 형식 중에서 선택할 수 있습니다. 이러한 형식에서는 공백, 쉼표 및 마침표를 숫자의 천 자리를 구분하는 기호 또는 소수점으로 사용합니다. 소수점은 값의 정수 부분과 분수 부분을 구분하는 데 사용되는 문자로, 일반적으로 마침표(.) 또는 쉼표(,)로 지정됩니다. 천 단위 구분 기호는 여러 자리 숫자를 세 그룹으로 구분하는 데 사용되며 일반적으로 마침표(.), 쉼표(,) 또는 공백( )으로 지정됩니다. 최신 버전의 iOS에서는 다음 숫자 형식을 iPhone의 기본 옵션으로 적용할 수 있습니다. 1,23

두 개의 문자열 str_1과 str_2가 주어졌습니다. 목표는 재귀 프로시저를 사용하여 문자열 str1에서 하위 문자열 str2의 발생 횟수를 계산하는 것입니다. 재귀 함수는 정의 내에서 자신을 호출하는 함수입니다. str1이 "Iknowthatyouknowthatiknow"이고 str2가 "know"인 경우 발생 횟수는 -3입니다. 예를 들어 str1="TPisTPareTPamTP", str2="TP"를 입력하면 Countofoccurrencesofasubstringrecursi가 출력됩니다.

이 함수는 strtok() 함수와 유사합니다. 유일한 주요 차이점은 재진입 함수라고 불리는 _r입니다. 재진입 기능은 실행 중에 중단될 수 있는 기능입니다. 이 유형의 함수를 사용하여 실행을 재개할 수 있습니다. 따라서 재진입 기능은 스레드로부터 안전합니다. 즉, 손상을 일으키지 않고 스레드에 의해 안전하게 중단될 수 있습니다. strtok_r() 함수에는 context라는 추가 매개변수가 있습니다. 이렇게 하면 기능을 올바른 위치에 복원할 수 있습니다. strtok_r() 함수의 구문은 다음과 같습니다: #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

Windows 11에서 파일의 압축을 푸는 방법을 모르면 특정 소프트웨어를 설치하지 못하거나 다른 사람이 보낸 파일을 아카이브 형식으로 보지 못할 수도 있습니다. 이 프로세스는 수행하기가 매우 간단하며 오늘 가이드에서는 Windows 11에서 수행하는 가장 좋은 방법을 보여 드리겠습니다. Windows 11에서 파일의 압축을 푸는 방법은 무엇입니까? 1. 상황에 맞는 메뉴를 사용하여 PC에서 zip 파일을 찾아 마우스 오른쪽 버튼을 클릭합니다. 다음으로 "모두 추출"을 선택하십시오. 추출 위치를 선택하고 "추출" 버튼을 클릭하세요. Windows가 파일을 추출할 때까지 기다립니다. 2. 타사 도구를 사용하여 WinZip을 다운로드하고 설치합니다. 추출하려는 zip 파일을 두 번 클릭합니다. 이제 추출 대상을 클릭하고 대상 폴더를 선택하십시오. 삼.

Python을 사용하여 사진의 특정 영역을 추출하는 방법 소개: 디지털 이미지 처리에서는 특정 영역을 추출하는 것이 일반적인 작업입니다. 강력한 프로그래밍 언어인 Python은 이미지 데이터를 처리하기 위한 다양한 라이브러리와 도구를 제공합니다. 이 기사에서는 코드 예제와 함께 Python 및 OpenCV 라이브러리를 사용하여 이미지의 특정 영역을 추출하는 방법을 소개합니다. 필수 라이브러리 설치 시작하기 전에 OpenCV 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다: pipinstallopen

Oracle 데이터베이스에서 중복된 데이터를 하나만 추출하는 방법은 무엇입니까? 일상적인 데이터베이스 작업에서 중복된 데이터를 추출해야 하는 상황이 자주 발생합니다. 때로는 모든 중복 데이터를 나열하는 대신 중복 데이터 중 하나를 찾고 싶을 때가 있습니다. Oracle 데이터베이스에서는 일부 SQL 문을 사용하여 이러한 목적을 달성할 수 있습니다. 다음으로는 오라클 데이터베이스에서 중복된 데이터를 한 조각만 추출하는 방법을 소개하고 구체적인 코드 예시를 제공하겠습니다. 1. ROWID 함수를 사용하세요. ROWID는 Ora입니다.
