C语言函数调字符串 c语言里字符串函数

c语言,这个题怎么调用字符串函数实现?会这样做,不会调用函数,求解

你这样做是调用函数了,虽然用的是memcpy函数,但也是函数。

綦江网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联公司自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

不调用函数的做法,是使用循环,逐字符复制,直到字符串结束符'\0'。

void nofunc(char *src, char *dest)

{

int i;

for (i=0; src[i] != '\0'; i++)

dest[i] = src[i];

dest[i] = '\0';

}

调用函数的做法,是使用strcpy()函数,而不是使用memcpy。

strcpy(dest, src);

这俩的区别在于,strcpy会把字符串结束符'\0'复制过来,而memcpy则不会判断是否结束,而是按指定的长度来复制。如果使用memcpy,你复制的长度必须是strlen+1才行。你这个程序,如果目的字符串不是刚刚好与源字符串长度相等的话,就能看出有错误。

char *src = "abc";

char dest[100];

strcpy(dest, "123"); /* 目的字符串刚好也是3个字符 */

memcpy(dest, src, strlen(src));

printf("[%s]\n", dest);  /* 如果这样调用,结果是正常的,刚好是abc */

strcpy(dest, "12345");

memcpy(dest, src, strlen(src));

printf("[%s]\n", dest);  /* 如果这样调用,结果是错误的,应该是abc45 */

/* 而使用strcpy就不会有问题 */

strcpy(dest, "12345");

strcpy(dest, src);

printf("[%s]\n", dest);  /* 这样调用结果就是正确的abc */

C语言字符串函数调用

gfedcba

f是一个交换函数

p=str+strlen(str)/2+1;

p就指向了 str+4 就是 e

p-2 指向 c

f的效果就是

从e开始直到g

和前面的c到a互换

C语言中,主函数输入了一个字符串,怎样在函数调用里也使用这个字符串?

函数里面定义的变量只能在这个函数内部使用……因此main函数定义的 l 和s不能在count里面用……

C语言中用函数处理字符串问题

你声明的string是一个只能被读取但不能被修改的字符串常量,你的程序没有错误,但你应该这样改动,char string[100];这样的话,你的Clean就没有问题了,不过建议把空格替换成'\0',这样能避免很多问题。

返回字符串的函数的思路:

1,在函数内建立一个字符数组Temp

2,按位为字符数组Temp赋值

3,返回Temp的首地址

4,在主函数中将Temp的值复制给一个数组。

C语言关于字符串的操作函数有哪些

string.h头文件中包含的字符串函数

void *memcpy(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义

void *memmove(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址

void *memchr(const void *s, char c, size_t n);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL

int memcmp(const void *s1, const void *s2, size_t n);//对从两个内存地址开始的n个字符进行比较

void *memset(void *, int, size_t);//用某种字节内容覆写一段内存空间

char *strcat(char *dest, const char *src);//在字符串dest之后连接上src

char *strncat(char *dest, const char *src, size_t n);//从src截取n个字符连接在字符串dest之后,返回dest字符串

char *strchr(const char* str, int ch);//从字符串str头开始查找字符ch首次出现的位置

char *strrchr(const char* str,int ch);//从字符串str尾开始查找字符ch首次出现的位置

int strcmp(const char *, const char *);//基于字典顺序比较两个字符串

int strncmp(const char *, const char *, size_t);//基于字典顺序比较两个字符串,最多比较n个字节

int strcoll(const char *, const char *);//基于当前区域设置的字符顺序比较两个字符串

char *strcpy(char* str1, const char* str2);//将str2拷贝给str1

char *strncpy(char* str1, const char* str2, size_t n);//截取str2的n个字符拷贝给str1

char *strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)

size_t strlen(const char *);//返回一个字符串的长度

size_t strspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为string span的缩写。不支持多字节字符集。

size_t strcspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为string complement span的缩写。不支持多字节字符集。

char *strpbrk(const char *s, const char *strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为string pointer break缩写。不支持多字节字符集。

char *strstr(const char *haystack, const char *needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle

char *strtok(char *strToken, const char *strDelimit );//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-local static variable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。

size_t strxfrm(char *dest, const char *src, size_t n);//根据当前locale转换一个字符串为strcmp使用的内部格式

C语言子函数调用 字符串问题

1,楼上说得正确

printf("输出文本文件:");

// 这句后面增加:

while ((c=getchar())!='\n' c!=EOF );

//目的是清空输入缓冲区。

2,加密算法是正确的

int op,i;

char c,outcome[30];

printf("请输入操作要求:(0为加密,!0为解密):\n");

scanf("%d",op);

printf("请输入文本文件:\n");

i=0;

printf("输出文本文件:");

while ((c=getchar())!='\n' c!=EOF );

while((c=getchar())!='\n')

{

if(op)

outcome[i]=decrpt(c);

else

outcome[i]=encrpt(c);

printf("%c",outcome[i]);

i++;

}

printf("\n");

//while((c=getchar())!='\n')

char a[27] = "abcdefghijklmnopqrstuvwxyz";

char A[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

for(int i = 0; i 27; i++)

{

printf("the old char is [%c]", a[i]);

printf("--- the encrpt char is [%c] \n", encrpt(a[i]));

}

for(int i = 0; i 27; i++)

{

printf("the old char is [%c]", A[i]);

printf("--- the encrpt char is [%c] \n", encrpt(A[i]));

}

printf("\n");

getchar();


分享名称:C语言函数调字符串 c语言里字符串函数
浏览地址:http://myzitong.com/article/hhhche.html