11-3:字符串 输出
三个标准的函数:puts() fputs() printf()
1.puts()函数:
#include<stdio.h> #define DEF "I an a #define string ." int main(){ char str1[80] = "An array was initialized to me ."; const char *str2 = "A pointer was initialized to me."; puts("I‘m an argument to puts()."); puts(DEF); puts(str1); puts(str2); puts(&str1[5]); puts(str2+4); return 0; }
在这个程序中,&str1[5]是数组str1的第6个元素。str2+4是i的那个内存单元,puts函数遇到空字符就会停下来。
2.fputs()函数,这个函数是面向文件的,与puts()函数的区别是:第二个参数说明要写的文件。同时,在输出的时候不会自动添加换行符。
3.printf()函数:不讲解。
4.自定义输入/输出函数:
void put1(const char *string){ while(*string) putchar(*string++) }
5.字符串函数:
1)strlen()函数:我们来看一个试图缩短字符串的函数。
#include<stdio.h> #include<string.h> void fit(char *,unsigned int); int main(){ char mesg[] = "Hold on to your hats,hackers. "; puts(mesg); fit(mesg,7); puts(mesg); puts("Let‘s look at some more of the string. "); puts(mesg + 8); return 0; } void fit(char *string,unsigned int size){ if(strlen(string) > size){ *(string + size) = ‘\0‘; } }
2)strcat()函数:接受两个字符串参数。第二个字符串会添加到第一个字符串后边,然后返回第一个字符串。同时第一个字符串改变,第二个字符串不变。
3)strncat()函数:接受三个参数,第三个参数是数字,是函数最多接受的字符数或者遇到空字符为止。
4)strcmp()函数:这个函数用来比较两个数组中的字符串的内容。
5)strncmp()函数:这个函数有第三个参数,用来限定比较字符串的个数。
#include<stdio.h> #include<string.h> #define LISTSIZE 5 int main(){ char *list[LISTSIZE] = { "astronomy", "astounding", "astronphysics", "ostracize", "asterusm" }; int count = 0 ; int i ; for(i = 0 ; i < LISTSIZE; i++){ if(strncmp(list[i],"astro",5) ==0 ){ printf("Found:%s\n",list[i]); count++; } } printf("The list contained %d words beginning""with astro.\n",count); return 0; }
6)strcpy()函数和strncpy()函数:
时间: 2024-11-04 14:58:55