char函数

循环逗号分割数组!

99封情书 提交于 2020-01-23 00:24:58
string str="aaajsbbbjsccc"; string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase); foreach (string i in sArray) Response.Write(i.ToString() + "<br>"); 输出结果: aaa bbb ccc 2、用多个字符来分隔: string str="aaajbbbscccjdddseee"; string[] sArray=str.Split(new char[2] {'j','s'}); foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 输出结果: aaa bbb ccc ddd eee 3、用单个字符来分隔: string str="aaajbbbjccc"; string[] sArray=str.Split('j'); foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 输出结果: aaa bbb ccc //////////////////////////////////////////////// string[] arr = str.Split("o");

memset函数使用详解

时间秒杀一切 提交于 2020-01-22 22:30:47
今天做题卡在MEMSET函数的使用上了,本来以为int a[100]; memset(a, MAX,sizeof(a));就是将a数组全部赋值为MAX,现在才知道他的填充是以字节为单位,一般用于对字符型变量的初值进行赋值. 更详细的解说见百度百科 --> http://baike.baidu.com/view/982208.htm 1。void *memset(void *s,int c,size_t n) 总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。 2。例子 #include void main(){ char *s="Golden Global View"; clrscr(); memset(s,'G',6); printf("%s",s); getchar(); return 0; }  3。memset() 函数常用于内存空间初始化。如: char str[100]; memset(str,0,100); 4。memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, '/0', sizeof(a)); memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b,

python后端面试第三部分:数据储存与缓存相关--长期维护

感情迁移 提交于 2020-01-22 15:34:57
################## 数据储存与缓存相关 ####################### mysql数据库, redis数据库, 9. MySQL的索引一般是怎么实现的? B-Tree(一般是B+Tree)和Hash,然后再简单介绍一下。 存储 存储可能包含rdbms,nosql以及缓存等,我以MySQL,redis举例。 mysql相关 mysql 是流行的RDBMS 关系型数据库 1.谈谈mysql字符集和排序规则? 2.var char与char的区别是什么?大小限制?utf8字符集下varchar最多能存多少个字符 char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10, 除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。 尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。 再者,char的存储方式是,对英文字符

第七周总结

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-22 07:25:52
这个作业属于那个课程 C 语言程序设计 II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/2937 我在这个课程的目标是 能更加进一步的够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 指针对于基础题目的做法 参考文献与网址 C语言程序设计II(第三版) 基础作业 6-2 每个单词的最后一个字母改成大写 ( 10 分 ) 函数fun的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 函数接口定义: void fun( char *p ); 其中 p 是用户传入的参数。函数将 p所指字符串中每个单词的最后一个字母改成大写。 裁判测试程序样例: #include <stdio.h> void fun( char *p ); int main() { char chrstr[64]; int d ; gets(chrstr); d=strlen(chrstr) ; chrstr[d] = ' ' ; chrstr[d+1] = 0 ; fun(chrstr); printf("\nAfter changing: %s\n", chrstr); return 0; } /* 请在这里填写答案 */ 输入样例:

尽可能使用const

北城余情 提交于 2020-01-22 03:17:49
我在初学C++的时候经常会疑惑,为什么一些字符串处理函数的字符串参数都声明为const类型,我认为这是完全没有必要的,后来我在C++ ProPlus中找到了答案。 将指针参数声明为指向常量数据的指针有两条理由: 1、这样可以避免由于无意间修改数据而导致的编程错误 2、使用const是的函数能够同时处理const(如“中的字符串”)和非const数据,否则将只能接受非const数据。 # include <iostream> using namespace std ; int findc ( const char * str , char ch ) { int count = 1 ; while ( * str ) { if ( * str == ch ) return count ; else { str ++ ; } count ++ ; } } int main ( ) { char ch = 'd' ; char name [ 20 ] = "dghtql" ; char * tail = "dghtql" ; cout << findc ( name , ch ) << endl ; cout << findc ( tail , ch ) << endl ; cout << findc ( "dghtql" , ch ) << endl ; } 输出: findc .

《算法导论》第11章 散列表 (2)散列表

╄→尐↘猪︶ㄣ 提交于 2020-01-22 01:14:37
用散列表来解决直接寻址表的那两个问题。但由此带来的散列值的碰撞问题。 最简单的解决方法是链接法,以及下一节介绍的开放寻址法。 链接法,即把散列到同一槽中的所有元素都放在一个链表中。 链表是无序的,在查找一个元素时需要遍历链表。 对于删除函数,假如参数是要删除的结点,那么如果链表是双向的,删除操作可以O(1)内完成。 在下面的删除函数中,参数是关键字,这样更为方便。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 20 // 链表结点的定义 typedef struct _ListNode { struct _ListNode *prev, *next; char *key; char *val; } ListNode; // 定义全局的各个槽链表的指针数组 ListNode *hashmap[SIZE]; // 这里的散列函数与Java中String及HashMap中的散列相同 // 注意为了保证向右逻辑运算(用0而不是符号位补高位) // 要将h声明为无符号的 unsigned hashcode(char *key) { // Ensure >> is logical shift unsigned h = 0; // String.hashcode() do h = 31 * h +

《算法导论》第11章 散列表 (2)散列表

妖精的绣舞 提交于 2020-01-22 01:12:06
用散列表来解决直接寻址表的那两个问题。但由此带来的散列值的碰撞问题。 最简单的解决方法是链接法,以及下一节介绍的开放寻址法。 链接法,即把散列到同一槽中的所有元素都放在一个链表中。 链表是无序的,在查找一个元素时需要遍历链表。 对于删除函数,假如参数是要删除的结点,那么如果链表是双向的,删除操作可以O(1)内完成。 在下面的删除函数中,参数是关键字,这样更为方便。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 20 // 链表结点的定义 typedef struct _ListNode { struct _ListNode *prev, *next; char *key; char *val; } ListNode; // 定义全局的各个槽链表的指针数组 ListNode *hashmap[SIZE]; // 这里的散列函数与Java中String及HashMap中的散列相同 // 注意为了保证向右逻辑运算(用0而不是符号位补高位) // 要将h声明为无符号的 unsigned hashcode(char *key) { // Ensure >> is logical shift unsigned h = 0; // String.hashcode() do h = 31 * h +

C++数据类型转换

感情迁移 提交于 2020-01-21 16:11:47
一、其他类型转为字符串 1、数值型 1 itoa(i,temp,10); //将i转换为字符串放入temp中,最后一个数字表示十进制 2 ltoa(l,temp,10); //长整形转为字符串放入temp中,最后一个数字表示十进制 3 4 //浮点数 5 int decimal, sign; 6 char *buffer; 7 double source = 3.1415926535; 8 buffer = _fcvt( source, 7, &decimal, &sign ); 9 decimal表示小数点的位置,sign表示符号:0为正数,1为负数 View Code 2、字符型 1 CString变量: 2 buf = (LPSTR)(LPCTSTR)str; 3 4 BSTR变量: 5 BSTR bstrValue = ::SysAllocString(L"hello world!"); 6 char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); 7 8 CComBSTR变量: 9 CComBSTR bstrVar("hello world!"); 10 char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); 11 12 _bstr_t变量: 13

ARM裸板开发——简单编写实现“shell”功能

谁说胖子不能爱 提交于 2020-01-21 12:44:56
文章目录 简单编写实现一个裸板环境下使用的“shell”功能程序,可以控制LED、beep等。 main主程序设计 主要函数:strcmp实现 LED初始化及控制功能实现 UART初始化及控制功能实现 使用Makefile编译 执行结果 简单编写实现一个裸板环境下使用的“shell”功能程序,可以控制LED、beep等。 main主程序设计 # include "uart.h" # include "strcmp.h" # include "led.h" //保存从上位机接收的数据信息 static char buf [ 32 ] ; void main ( void ) { //1.初始化UART uart_init ( ) ; //2.初始化LED led_init ( ) ; //3.根据用户需求完成业务 while ( 1 ) { uart_puts ( "\n Shell#" ) ; uart_gets ( buf , 32 ) ; if ( ! my_strcmp ( buf , "led on" ) ) led_on ( ) ; else if ( ! my_strcmp ( buf , "led off" ) ) led_off ( ) ; else uart_puts ( "\n Your command is invalid\n" ) ; } } 主要函数

四、指针的使用

北慕城南 提交于 2020-01-21 10:08:22
1.指针赋值 ① int i , *p , *q; p = &i;//p获取i的地址 q = p;//指针变量p把地址拷贝给指针变量q *p = 1;//改变i的值为1 *q = 2;//改变i的值为2 ② int i , j , *p , *q; p = &i;//指针变量i获取i的地址 q = &j;//指针变量q获取j的地址 i = 1;//给i赋值为1 *q = *p;//把指针p的值拷贝给指针q printf(“%d %d\n”,*p,*q);//输出 2.指针与一维数组 ①数组名代表数组的首地址,是一个地址常量,即数组首元素地址 示例: void printfMaxValueOfArray(int array[] , int count); void printfMaxValueOfArray(int array[] , int count){ int max = 0; for(int i = 0 ; i < count ; i ++){ if(max < array[i]){ max = array[i]; } } printf(“max = %d”,max); } int main(){ int number[] = {10,20,15,3,8,9,100}; printfMaxValueOfArray(number,sizeof(number) / sizeof