字符串操作练习以及scanf()的注意事项

/*
 ============================================================================
 Name        : String.c
 Author      : lf
 Version     :
 Copyright   : Your copyright notice
 Description : 字符串操作练习以及scanf()的注意事项
 1 字符串的插入
 2 删除字符串中的字符
 3 scanf()的注意事项
 ============================================================================
 */

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

void test1();
void test2();
void test3();

int main(void) {
	test1();
	test2();
	test3();
	return EXIT_SUCCESS;
}

/**
 * 字符串的插入
 * 操作步骤:
 * 1 找到插入的位置
 * 2 保存插入位置之后的字符串
 * 3 将插入位置之后的字符串截掉
 * 4 原字符串与待插入字符串组拼
 * 5 原字符串与原插入位置后的字符串组拼
 */
void test1(){
	char insertString[10]=" hello vc";
	char oldString[40]="hello java hello C++ hello c";
	printf("oldString=%s\n",oldString);
	char searchString[10]="C++";
	char *p=strstr(oldString,searchString);
	if (p!=NULL) {
		char tempString[20];
		strcpy(tempString,p+strlen(searchString));
		printf("tempString=%s\n",tempString);
		*(p+strlen(searchString))='\0';
		printf("oldString=%s\n",oldString);
		strcat(oldString,insertString);
		printf("oldString=%s\n",oldString);
		strcat(oldString,tempString);
		printf("oldString=%s\n",oldString);
	} else {
		printf("NOT FOUND\n");
	}
	printf("============\n");
}

/**
 * 删除字符串中的字符
 */
void test2() {
	int location = 0;
	char oldString[40] = "hello java hello C++ hello c";
	printf("oldString=%s\n", oldString);
	char newString[40];
	char deleteChar = 'l';
	char *p = oldString;
	while (*p != '\0') {
		if (*p != deleteChar) {
			newString[location] = *p;
			location++;
		} else {

		}
		p++;
	}
	printf("newString=%s\n", newString);
	strcpy(oldString,newString);
	printf("oldString=%s\n", oldString);
	printf("============\n");
}

/**
 *  scanf()的注意事项
 *  scanf()会将空格,制表符,空格,换行符,换页符当做数据的终止符.
 *  但是gets()不会,所以在输入字符串含有以上字符时可gets()
 */
void test3() {
//	char a[30];
//	scanf("%s", a);
//	printf("a=%s\n", a);

	char b[30];
	gets(b);
	printf("b=%s\n", b);
}

时间: 2024-10-13 22:10:40

字符串操作练习以及scanf()的注意事项的相关文章

C语言难点1之输入输出,链接,字符串操作

C语言难点1之输入输出,链接,字符串操作 最近发现写了一段时间的C之后,还是有一些点并没有很好的get,我就想总结出来,写个系列博客,自己也好好的整理一下思路.这个系列主要出自三本书:<C专家编程>,<C陷阱和缺陷>,<C和指针>.有兴趣的同学可以好好看一下这几本书,对于打好C语言的基础是个非常不错的几本书. 1 一些输入输出的格式 对应的printf():和scanf()函数:在这里我给出常用的scanf格式码,和printf()函数也是一样的. 2 getchar(

专项复习2 字符串操作

字符串操作 1 拼数 LGP1012 题解 string类型不会真是个事啊,多个字符串开char也不是事啊... 思想很简单,如果\(A+B<B+A\),则\(B\)和\(A\)应该调换(类似冒泡排序) #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream> using namespace std; stri

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

PHP字符串操作大集合

字符串的处理非常重要.文本字符串中的空格或者其他没有意义的符号.例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格.句号等PHP4及以上版本提供了4个去除字符串str首尾处空格或其他特殊符号.     string ltrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号.     string chop(string str [, string charlist]):功能同rtrim(). 以上函数的第1

C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

linux shell 字符串操作(长度,查找,替换)详解

原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT}

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

Python字符串操作

isalnum()判断是否都是有效字符串 ? 1 2 3 4 5 6 7 8 9 10 11 12 >>> ev1 = 'evilxr' >>> ev2 = 'ev1il2xr3' >>> ev3 = '.,/[email protected]#' >>> a = ev1.isalnum() >>> print a True >>> b = ev2.isalnum() >>> pr

JavaScript中常见的字符串操作函数及用法汇总

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: ? 1 2 var num= 19; // 19 var myStr = num.toString(); // "19" 你同样可以这么做: ? 1 2 var num= 19; // 19 var myStr = String(num); // "19" 或者,再简单点儿: ? 1 2 var num= 19; // 19 var myStr =