-
while
如果要判断一个相等的条件,就用==
; -
char *s = “xxxx”
和char s[] = "xxx"
是有区别的,后者,在函数进行参数传递时,可以用s[i]
;而前者不能用,会出现报错使用未分配的空间。 -
#include<string.h>
中的strlen
函数,所求的长度不包含'\0'
;而sizeof
所求的长度则包含'\0'
;所以sizeof
所求的长度比strlen
所求的长度多1。 -
打印字符串时,采用的时
%s
可直接把字符串打印出来(以\0
作为结尾)。 -
字符串的输入:
//当要输入一个不知道长度的字符串或者数字时,采用此方法。 char str[100]; scanf ("%s",str); //采用%s直接输入字符串,并且str直接表示地址。 int l = strlen (str); //算出字符串的长度。 int sum = 0; for (int i = 0;i < l; i++){ //计算各个位数的和 sum = sum + str[i] - '0'; //把字符型格式转换为整数型。 “ - '0' ” } “ + '0'” 是转换为字符
-
字符串进行传递:
int strStr(char* haystack, char* needle) { //如第二条所说,可以使用haystack[i]和needle[i] } int main (){ char haystack[] = "sleetcode"; //字符串用“” 字符用‘’ char needle[] = "co"; printf ("%d",strStr(haystack,needle)) return 0; }
-
输入带有空格的数字串
while (1){ scanf ("%d",&A[num]); num ++; char c = getchar(); //获取键盘的输入 if (c == '\n'){ break; }//if }//while
-
输入带有空格的字符串
char str[1000]; scanf ("%[^n]",str); //"%[]"表示的含义 //或者可以用 gets(str); scanf ("%[^]]",str); //表示当输入到]时停止输入,如果没有加^则表示只输入【】内有的,如果碰到没有的就结束输入。 //gets下运用strlen int len = strlen(str); for (int i = 0;i <= len;i++){ //这样才能遍历数组,一定要注意有=!!! }
-
交换两个变量的值(结构体也是同样的操作)
void swap (int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp; }