当前位置:首页 » 编程语言 » 用c语言实现字符串
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用c语言实现字符串

发布时间: 2022-02-16 16:18:23

1. c语言,使用函数实现字符串复制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include <stdio.h>
#include <time.h>

/*把从src地址开始的字符串复制到以dest开始的字符串中*/
char* str (char* dest, char *src) {
char* r = dest;
while((*r++ = *src++)!='\0');
return dest;
}

int main () {
char *str1="abcde";
char *str2;

str2 = str (str2, str1); /*把str1复制到str2*/

puts (str2);

return 0;
}

2. 用C语言实现字符串操作

楼上的写的好啊~ 不过要在unix或linux下~

写个通用点的
#include<stdio.h>
int main(int argc,char* argv[])
{
FILE *fp1,*fp2;
int i=0;
char ch;
if (argc<3) return 0;

if((fp1=fopen(argv[1],"r"))==NULL)
return 0;

if((fp2=fopen(argv[2],"w"))==NULL)
return 0;

while ((ch=fgetc(fp1))!=EOF)
{
if (i!=0 && i%3==0)
fputc('0',fp2);
fputc(ch,fp2);
i++;
}
fclose(fp1);
fclose(fp2);
return 0;
}

3. 在C语言中如何实现用键盘输入一个字符串,并打印出来

在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:

1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。

(3)用c语言实现字符串扩展阅读:

字符数组的输出:

(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:

for(i=0;i<10;i++)

a[i]=putchar();

用printf()赋值:

for(i=0;i<10;i++)

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

输出结果为:

c program[2]

(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10];

printf("%s",a);

输出结果为:

c program

参考资料来源:

网络-char

网络-字符数组

4. C语言怎么用printf输出字符串。

void main()

{

unsigned char *x = "ab,sdf,sad,23432,cc";

data = x;

printf("data = %c ", *data);

printf("data = %s ", data);

system("pause");

}

(4)用c语言实现字符串扩展阅读:

printf输出字符串的一些格式

1、原样输出字符串:printf("%s", str);

2、输出指定长度的字符串, 超长时不截断, 不足时右对齐:printf("%Ns", str);

注:N 为指定长度的10进制数值

3、输出指定长度的字符串, 超长时不截断, 不足时左对齐:printf("%-Ns", str);

注:N 为指定长度的10进制数值

4、输出指定长度的字符串, 超长时截断, 不足时右对齐:printf("%N.Ms", str);

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

5、输出指定长度的字符串, 超长时截断, 不足时左对齐是:printf("%-N.Ms", str);

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

参考资料来源:printf-网络

5. c语言编程字符串处理

#include<stdio.h>char str1[100],str2[100];char *mystrcat(char *s,char *ct) //字符串连接
{
while(*(s++));
s--;
while(*ct)
*(s++) = *(ct++);
return s;
}char *mystrcpy(char *s,char *ct)
{
while(*(s++)=*ct,*(ct++));
return s;
}int mystrcmp(char *s,char *ct)
{
while(*s && *ct)
{
if(*(s++) == *(ct++))
continue;
else
return *(s-1)-*(ct-1);
}
return 0;
}int mystrlen(char *s)
{
int length = 0;
while((length++,*s++));
return length-1;
}char *mystrsort(char *s)
{
int i,j,length = mystrlen(s);
char t;
for(i = 0;i < length;i++)
for(j = 0;j < length-i-1;j++)
{
if(s[j] > s[j+1])
{
t =s[j];
s[j] = s[j+1];
s[j+1] = t;
}
}
return s;
}int mystrfind(char *s,char ch)
{
int index = 0;
while(*s)
if(index++,*s == ch)
return index;
return -1;
}void menu()
{
int choose = 1;
char ch;
while(choose != 0)
{
printf("\n1.字符串连接\n2.拷贝\n3.比较\n4.求字符串长度\n5.对字符串内字符进行排序\n6.查找字符串中某个字符是否存在\n0.退出\n");
scanf("%d",&choose);
switch(choose)
{
case 1:printf("输入2字符串:\n");
scanf("%s%s",str1,str2);
mystrcat(str1,str2);
printf("连接后的字符串:%s\n",str1);
break;
case 2:printf("输入要拷贝的字符串:\n");
scanf("%s",str2);
mystrcpy(str1,str2);
printf("拷贝的字符串:%s\n",str1);
break;
case 3:printf("输入要比较的2字符串:\n");
scanf("%s%s",str1,str2);
printf("%d\n",mystrcmp(str1,str2));
break;
case 4:
printf("输入要求长度的字符串:\n");
scanf("%s",str1);
printf("长度为:%d\n",mystrlen(str1));
break;
case 5:
printf("输入要求排序的字符串:\n");
scanf("%s",str1);
mystrsort(str1);
printf("排序后:%s\n",str1);
break;
case 6:printf("输出字符串:\n");
scanf("%s",str1);
printf("输入要查找的字符:\n");
scanf("%c",&ch);
scanf("%c",&ch);
printf("ch所在位置为%d\n",mystrfind(str1,ch));
}
}
}int main()
{

menu();
return 0;
}

6. C语言怎么实现字符串的任意输入

楼主的意思是不是在输入的时候不通过按回车键来结束字符串的输入就能把字符串读入程序?

7. C语言怎么实现字符串的匹配

p=="delete"要改成用strcmp(p, "delete") == 0 来进行字符串匹配。
你的写法是判断两个指针地址是否相等,而不是指针指向的内容相同。
p和"delete"的地址原本就不相等,一个指向了栈上分配了10个字节的空间,空间的内容是"delete",另一个指向了常量区的"delete"。

请采纳,谢谢

8. 怎么用c语言实现字符串数组

C语言里面字符串跟数组没有明显界限,

char a[50]="a clever boy";
你可以当a是字符串,用%s打印,
也可以当它是保存char类型元素的数组,记得有个结束符就好。

9. 如何用C语言实现一个字符串的截取

char*subString(char*str,intstar,intlen)这个原型声明没有问题,传递进去一个字符串,起始字符的位置,以及截取的长度。按照这个意思来写最后是没有问题的。返回值为字符型指针可以在这个函数里面声明一个字符数组,最后将这个字符数组返回,。。。

10. 用C语言编程:编写一个函数,将两个字符串连接起来

1、新建一个工程和.c文件,输入头文件和主函数。