【PTA數據結構 | C語言版】字符串插入操作

本專欄持續輸出數據結構題目集,歡迎訂閱。

文章目錄

    • 題目
    • 代碼

題目

請編寫程序,將給定字符串 t 插入到另一個給定字符串 s 的第 pos 個字符的位置。

輸入格式:
輸入先后給出主串 s 和待插入的字符串 t,每個非空字符串占一行,不超過 1000 個字符,以回車結束(回車不算在字符串內)。第三行給出插入的位序 pos(注意位序從 1 開始,保證不超過 s 的長度加 1)。

輸出格式:
在一行中輸出將 t 插入 s 的第 pos 個字符的位置后的結果字符串。
如果插入后的字符串長度超過了 1000 個字符,則不要插入,而是在一行中輸出 錯誤:插入將導致字符串長度超限。,并且在第二行輸出原始主串 s。

輸入樣例:
This is a test.
simple-
11

輸出樣例:
This is a simple-test.

代碼

#include <stdio.h>
#include <string.h>#define MAX_LENGTH 1000int main() {char s[MAX_LENGTH + 1], t[MAX_LENGTH + 1];int pos;// 讀取主串 sfgets(s, MAX_LENGTH + 1, stdin);// 移除換行符if (s[strlen(s) - 1] == '\n') {s[strlen(s) - 1] = '\0';}// 讀取待插入的字符串 tfgets(t, MAX_LENGTH + 1, stdin);// 移除換行符if (t[strlen(t) - 1] == '\n') {t[strlen(t) - 1] = '\0';}// 讀取插入位置 posscanf("%d", &pos);// 計算插入后的總長度int new_length = strlen(s) + strlen(t);if (new_length > MAX_LENGTH) {printf("錯誤:插入將導致字符串長度超限。\n");printf("%s\n", s);} else {// 創建臨時數組存儲結果char result[MAX_LENGTH + 1];// 復制 s 的前半部分(到 pos-1 位置)strncpy(result, s, pos - 1);result[pos - 1] = '\0';// 追加 tstrcat(result, t);// 追加 s 的后半部分(從 pos 位置開始)strcat(result, s + pos - 1);printf("%s\n", result);}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89080.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Postman + Newman + Jenkins 接口自動化測試

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 </

CAS單點登錄架構詳解

目錄 概述核心概念 TGC (Ticket Granting Cookie)TGT (Ticket Granting Ticket)ST (Service Ticket) 架構設計 整體架構存儲架構安全機制 工作流程 完整登錄時序流程步驟詳解 技術實現 會話管理數據同步問題最佳實踐 參考資料 概述 CAS (Central Authentication Service) 是…

C++中正則表達式詳解和實戰示例

C 中的正則表達式&#xff08;Regular Expression&#xff09;主要通過標準庫 <regex> 提供&#xff0c;能夠用于字符串匹配、查找、替換、驗證格式等。它在 C11 中首次引入&#xff0c;并在 C14 和 C17 中逐步完善。一、頭文件和命名空間 #include <regex> #inclu…

深入解析Avro、Protobuf與JSON:序列化技術的選擇與應用

在現代分布式系統和數據交換場景中&#xff0c;序列化技術是數據存儲、傳輸和通信的核心。本文深入探討三種主流序列化技術&#xff1a;Avro、Protobuf 和 JSON&#xff0c;從背景、特點、示例代碼&#xff08;Python&#xff09;、優勢及最佳實踐等多個維度進行對比分析&#…

Vue 中 effectScope() 的全面解析與實戰應用

一、effectScope 概述1.1 什么是 effectScopeeffectScope() 是 Vue 3.2 引入的核心 API&#xff0c;用于創建副作用作用域容器。它能夠將多個響應式副作用&#xff08;如 watch、watchEffect 和 computed&#xff09;組織在一起&#xff0c;實現統一的生命周期管理。1.2 核心價…

嵌入式面試八股文(十六)·一文搞懂嵌入式常用名詞IC、ASIC、CPU、MPU、MCU、SoC、SoPC、GPU、DSP

目錄 1. IC&#xff08;Integrated Circuit&#xff0c;集成電路&#xff09; 2. ASIC&#xff08;Application-Specific Integrated Circuit&#xff0c;專用集成電路&#xff09; 3. CPU&#xff08;Central Processing Unit&#xff0c;中央處理器&#xff09; 4. M…

安全參綉25暑假第一次作業

第一天 1.首先講了d0cker的部署&#xff0c; 這個是第一個Vulhub漏洞環境。所有環境都使用D0cker容器化&#xff0c;使其易于部署和隔離測試。 其中&#xff0c;國內的阿里用不了&#xff0c;你得搞個代理&#xff0c;下國外的&#xff1a;入門指南 | Vulhub 然后按這個…

RocketMQ源碼級實現原理-消息消費總覽

Overview可以看到&#xff0c;pull message和consume message實際上是兩個過程&#xff0c;但是對于用戶是透明的 注意這三個Offset的含義&#xff0c;physical offset就是commitLog中的全局偏移量分發dispatch如上圖&#xff0c;Topic的每個queue&#xff0c;都綁定了唯一的一…

linux打包固件shell腳本

不打包 pack.sh解壓后無父目錄&#xff08;直接是文件&#xff09;生成 checksum.txt&#xff08;包含所有文件的 SHA256&#xff09;打包后 .tar.gz 移動到上級目錄#!/bin/bash# 檢查是否傳入版本號參數 if [ -z "$1" ]; thenecho "Usage: $0 <version> …

用uniapp開發鴻蒙應用(暫停更新-根據項目更新,現在項目未開始)

1.根據博客生成.hap文件 【鴻蒙HarmonyOS開發技巧&#xff1a;如何不依賴華為商店直接安裝uniapp生成的app文件&#xff1f;一鍵轉換app至hap格式教程詳解】_entry-default-signed.hap-CSDN博客 根據網絡查詢鴻蒙手機安裝測試app&#xff0c;需要電腦命令安裝 在鴻蒙HarmonyOS手…

Linux 文件系統實現層詳解:原理、結構與驅動銜接

&#x1f4c2; Linux 文件系統實現層詳解&#xff1a;原理、結構與驅動銜接 &#x1f3ac; 推薦搭配視頻學習&#xff1a;Linux 文件系統子系統&#xff1a;三層架構全面掌握 一、為什么要重點理解文件系統實現層&#xff1f; 文件系統實現層是 Linux 文件系統的“地基”&…

區塊鏈應用場景深度解讀:金融領域的革新與突破

引言&#xff1a;區塊鏈技術的演進與金融領域的變革區塊鏈技術自2008年誕生以來&#xff0c;以其去中心化、不可篡改、可追溯等特性&#xff0c;在全球范圍內引發了金融領域的深刻變革。從最初的數字貨幣實驗&#xff0c;到如今在跨境支付、證券交易、供應鏈金融等領域的廣泛應…

redisson tryLock

應用場景RLock rLock redissonClient.getLock(Constant_LOCK request.getId()); try {boolean isLocked rLock.tryLock();if (!isLocked) {throw new ServiceException(ErrConstant.OPERATION_FAILED, "請勿重復提交");}源碼public interface RLock extends Lock,…

前端docx庫實現將html頁面導出word

前言&#xff1a;最近遇到一個需求&#xff0c;需要將頁面的html導出為word文檔&#xff0c;并且包含橫向和豎向頁面&#xff0c;并且可以進行混合方向導出。經過一段時間的實驗&#xff0c;發現只有docx這個庫滿足這個要求。在這里記錄一下實現思路以及代碼。 docx官網 一、…

虛擬主機CPU占用100導致打不開的一次處理

背景 突然有一天&#xff0c;有個客戶網站打不開了&#xff0c;發來這樣一張圖片問題排查 打開阿里云虛擬主機控制面板&#xff0c;CPU 使用率已經達到了100%&#xff0c;這說明網站已經在高負荷運轉。分析訪問日志發現&#xff0c;網站出現了大量循環路徑&#xff0c;其 UserA…

設計模式之工廠模式:對象創建的智慧之道

工廠模式&#xff1a;對象創建的智慧之道 引言&#xff1a;為什么我們需要工廠模式&#xff1f; 在軟件開發中&#xff0c;對象創建是最常見的操作之一。當代碼中充滿new關鍵字時&#xff0c;系統會面臨三大痛點&#xff1a; 緊耦合&#xff1a;客戶端代碼直接依賴具體實現類擴…

Docker鏡像制作案例

1、使用Docker commit制作鏡像為ubuntu鏡像提供ssh服務①&#xff1a;拉取鏡像[rootopenEuler-1 ~]# docker pull ubuntu:18.04②&#xff1a;啟動鏡像[rootopenEuler-1 ~]# docker run --name c1 -it --rm ubuntu:18.04 bash③&#xff1a;替換aliyun源mv /etc/apt/sources.li…

KeilMDK5如何生成.bin文件

1&#xff1a;主要是要找到fromelf.exe的路徑2&#xff1a;接下來要做的要視情況而定&#xff1a;選完fromelf.exe后在輸入框中加個空格然后加一串字 : --bin -o ./Obj/L.bin ./Obj/L.axf&#xff0c;如下我設置的L最終會替換成項目名 3&#xff1a;去構建生成編譯一下&#…

Ajax接收java后端傳遞的json對象包含長整型被截斷導致丟失精度的解決方案

問題描述 在使用java編寫代碼的時候,后端返回前端的JSON對象中包含了Long長整型,前端接受的時候丟失了精度問題。 比如: 后端傳遞的json {"code": "200","msg": "操作成功","data":

MybatisPlus由淺入深

MyBatis-Plus&#xff08;簡稱 MP&#xff09;是一個 MyBatis 的增強工具&#xff0c;旨在簡化開發過程。基本使用步驟1.依賴引入<!-- mysql依賴 --> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>…