社区
C语言
帖子详情
急救:c语言中字符串连接出问题,在线等待
HitXU
2003-08-22 11:52:49
字符串(i) = 字符串(i-1) + 字符串(i-2)
看起来很简单,可是我写了几行代码总是不对。
请大侠指点怎么写
...全文
1740
37
打赏
收藏
急救:c语言中字符串连接出问题,在线等待
字符串(i) = 字符串(i-1) + 字符串(i-2) 看起来很简单,可是我写了几行代码总是不对。 请大侠指点怎么写
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MasterGo
2003-08-23
打赏
举报
回复
字符串的末尾有一个结尾符
woaichenyu
2003-08-23
打赏
举报
回复
看来高手还是很多的嘛
hillyee
2003-08-23
打赏
举报
回复
printf(string); ok了
oopig
2003-08-23
打赏
举报
回复
看来十代以上的兔子家族的数目就非常可观了,呵呵
oopig
2003-08-23
打赏
举报
回复
建议你用c++中stl的链表做,轻松很多:
#include <iostream>
#include <list>
#include <assert.h>
using namespace std;
//兔子繁殖一代,即'a'=>'b', 'b'=>'ba'
void breed(list<char> &rabit)
{
list<char>::iterator it = rabit.begin();
while (it != rabit.end())
{
switch (*it)
{
case 'a': //小兔子变成大兔子
*it++ = 'b';
break;
case 'b': //大兔子生出小兔子
rabit.insert(++it, 'a');
break;
default: //这里不知道是什么兔子,略过
assert(false);
it++;
}
}
}
//打印 兔子
void print(const list<char> &rabit)
{
list<char>::const_iterator it = rabit.begin();
for (; it != rabit.end(); it++)
{
cout << *it;
}
cout << endl;
}
int main()
{
list<char> rabit;
rabit.push_back('a'); //预先有一只小兔子
//10代兔子
for (int i = 0; i < 10; i++)
{
print(rabit);
breed(rabit);
}
print(rabit);
return 0;
}
jnqx
2003-08-23
打赏
举报
回复
#include <stdio.h>
#define LEN 1024
#include "stdlib.h"
#include "string.h"
void main()
{
char *f1, *f2, *f3;
int loop;
f1 = (char *)malloc(LEN);
f2 = (char *)malloc(LEN);
f3 = (char *)malloc(LEN);
f1 = "a";
f2 = "b";
for (loop = 0; loop < 3; loop++)
{
strcpy(f3, f2);
strcat(f3, f1);
f1 = f2;
f2 = f3;
printf("%p\n", f1);
printf("%p\n",f2);
printf("%p\n",f3);
}
printf("%s\n", f3);
}
上面的程序我试过了,也不行!
在循环中,我输出了他们的地址,
除了第一次f1的地址不同,其余的都相同!?
3次循环后,地址相同!
所以当printf("%s\n",f3);时,系统不知道是输出f1,还是f2,f3?(我瞎猜的!)
希望大虾们指点一二。
紫郢剑侠
2003-08-22
打赏
举报
回复
用strcat().
Dragon132
2003-08-22
打赏
举报
回复
用函数就行啦
sprintf(字符串(i),"%s%s", 字符串(i-1), 字符串(i-2));
njtu
2003-08-22
打赏
举报
回复
不太清楚你的意思,把你的代码贴出来看看吧。
dddd8888
2003-08-22
打赏
举报
回复
<string.h>
用strcat(char *str, const char*);
必须保证str数组不越界
在c中不能和VB一样字符串相加,除非用C++ stl的string类 或 MFC中的CString类
aflyinghorse
2003-08-22
打赏
举报
回复
要包含头文件
<string.h>
aflyinghorse
2003-08-22
打赏
举报
回复
char *strcat(s,ct) concatenate string ct to end of string s; return s.
其中参数s为char *, ct为const char *
tonybaobao
2003-08-22
打赏
举报
回复
不明白你的意思。
made_in_
2003-08-22
打赏
举报
回复
如果是string类的,直接相加就可以了:
str = str1 + str2;
如果是字符指针的:
char string[80];
strcpy( string, "Hello world from " );
strcat( string, "strcpy " );
strcat( string, "and " );
strcat( string, "strcat!" );
printf( "String = %s\n", string );
lzy125vc
2003-08-22
打赏
举报
回复
你只要弄清楚两个字符串的基地址,把第二个字符串的基地址连接到第一个字符串的最后一个字符后就行了,很容易实现的.
Dragon132
2003-08-22
打赏
举报
回复
我的程序出了正确结果
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LEN 1024
int main()
{
char f1[LEN],f2[LEN], f3[LEN];
int loop;
//f1 = (char *)malloc(LEN);
//f2 = (char *)malloc(LEN);
//f3 = (char *)malloc(LEN);
strcpy(f1,"a");
strcpy(f2,"b");
for (loop = 0; loop < 10; loop++)
{
strcpy(f3, f2);
strcat(f3, f1);
strcpy(f1,f2);
strcpy(f2,f3);
//f1 = f2;
//f2 = f3;
}
printf("%s\n", f3);
}
yorky
2003-08-22
打赏
举报
回复
你程序的错误就在于
f1 = f2;
f2 = f3;
这两条语句上。在c语言中,字符串赋值不能这么简单的用赋值号,因为f1,f2,f3都是指针,这样做的结果只是这些指针指向的地址发生了变化,而不是字符数组里边的内容发生了变化。
这样,在循环3次后,f1,f2,f3都指向f3字符串的首地址,此时调用strcat(f3, f1);
便会产生一个访问错误退出。
正确的做法应该如aflyinghorse的做法一样。
刚开始用
strcpy(f1, f2);
strcpy(f2, f3);
语句替换
f1 = f2;
f2 = f3;
后,在执行strcpy(f1, f2);的时候也会产生访问错误。不过这个错误是为什么呢?因为
f1="a"的缘故吗?
aflyinghorse
2003-08-22
打赏
举报
回复
#define LEN 1024
int main()
{
char *f1, *f2, *f3, *temp;
int loop;
f1 = (char *)malloc(LEN);
f2 = (char *)malloc(LEN);
f3 = (char *)malloc(LEN);
temp = (char *)malloc(LEN);
strcpy(f1, "a");
strcpy(f2, "b");
strcpy(temp, f2);
strcpy(f3, "a b ");
for (loop = 0; loop < 5; loop++)
{
strcat(f2, f1);
strcpy(f1, temp);
strcpy(temp, f2);
strcat(f3, f2);
strcat(f3, " ");
}
printf("%s\n", f3);
free(f1);
free(f2);
free(f3);
free(temp);
getchar();
}
hellobcb
2003-08-22
打赏
举报
回复
是大括号。呵呵!
hellobcb
2003-08-22
打赏
举报
回复
哦!少了一个分号。
加载更多回复(17)
MySQL5 权威指南第3版
中
文版_part1
内容提要 本书全面深入地介绍了MySQL的功能,主要内容包括MySQL、PHP、Apache、Perl等组件的安装与功能简介,mysql等一些重要系统管理工具和用户操作界面的使用,MySQL数据库系统设计的基础知识与用不同语言设计MySQL数据库的过程,以及SQL语法、工具、选项、API应用指南,最大限度地帮助读者更快地学习和掌握MySQL数据库系统的设计和使用。本书覆盖了MySQL 5.0,讨论了新的程序设计接口(如PHP 5里的mysqli)和新的系统管理工具。 本书是MySQL数据库管理员和开发人员的必备参考书。 目录 第一部分 入门 第1章 什么是MySQL 1.1 什么是数据库 1.2 MySQL 1.3 MySQL的不足 1.4 MySQL的版本编号 1.5 MySQL的许可证 1.6 MySQL软件的替代品 1.7 小结 第2章 测试环境 2.1 是Windows还是UNIX/Linux 2.2 在Windows系统上安装MySQL和相关软件 2.3 在SUSE Linux 9.3系统上安装MySQL和相关软件 2.4 在Red Hat Enterprise Linux 4系统上安装MySQL和相关软件 2.5 编译MySQL软件的开发者版本(Linux) 2.6 配置Apache 2.7 配置PHP 2.8 配置MySQL 第3章 初级案例研究:MySQL+PHP 3.1 概述 3.2 数据库的开发 3.3 调查问卷 3.4 问卷调查结果的处理和显示 3.5 改进意见 第二部分 管理工具和用户操作界面 第4章 mysql、mysqladmin和mysqldump 4.1 mysql 4.2 mysqladmin 4.3 mysqldump 第5章 MySQL Administrator和MySQL Query Browser 5.1 安装 5.2 与MySQL服务器建立
连接
5.3 MySQL Administrator 5.4 MySQL Query Browser 第6章 phpMyAdmin 6.1 phpMyAdmin的安装与配置 6.2 用户管理,保护MySQL 6.3 创建和编辑数据库 6.4 查看、插入和编辑数据 6.5 执行SQL命令 6.6 导入和导
出
6.7 服务器管理 6.8 辅助功能 第7章 Microsoft Office和OpenOffice/StarOffice 7.1 安装Connector/ODBC 7.2 Microsoft Access 7.3 Microsoft Excel 7.4 安装Connector/J 7.5 OpenOffice/StarOffice Base 7.6 OpenOffice/StarOffice的Data Source视图 第三部分 基础知识 第8章 数据库设计概论 8.1 参考读物 8.2 数据表类型 8.3 MySQL数据类型 8.4 数据库设计技巧 8.5 规范化 8.6 层次关系的处理 8.7 关系 8.8 主键和外键 8.9 索引 8.10 视图 8.11 示例数据库mylibrary(图书管理) 8.12 示例数据库myforum(网上论坛) 8.13 示例数据库exceptions(用于特殊情况的测试) 第9章 SQL语言入门 9.1 简介 9.2 简单查询(SELECT) 9.3 对查询结果进行排序(ORDER BY) 9.4 筛选数据记录(WHERE,HAVING) 9.5 涉及多个数据表的关联查询(LEFT/RIGHT JOIN) 9.6 合并查询结果(UNION) 9.7 分组查询,统计函数(GROUP BY) 9.8 修改数据(INSERT、UPDATE和DELETE) 9.9 创建数据表、数据库和索引 第10章 SQL解决方案 10.1
字符串
10.2 日期和时间 10.3 ENUM和SET数据类型 10.4 变量与条件表达式(IF、CASE) 10.5 在数据表间复制数据 10.6 统计报表 10.7 子查询 10.8 保证数据的一致性 10.9 找
出
冗余的数据记录 10.10 数据表设计方案的改进 10.11 对前n条或后n条记录进行处理 10.12 以随机方式选择数据记录 10.13 全文索引 10.14 锁定 10.15 事务 第11章 访问权限与信息安全 11.1 简介 11.2
急救
11.3 访问控制机制的内部工作原理 11.4 访问权限的设置工具 11.5 MySQL 4.1版本开始的安全密码验证 11.6 建立
连接
的
问题
11.7 系统安全性 第12章 GIS函数 12.1 GIS数据格式 12.2 MySQL的GIS实现 12.3 SQL示例(冰川数据库) 12.4 SQL示例(opengeodb数据库) 第13章 存储过程和触发器 13.1 为什么要使用存储过程和触发器 13.2 初识SP 13.3 SP的实现 13.4 SP的管理 13.5 SP的语法和语言元素 13.6 SP应用示例 13.7 触发器 第14章 管理与服务器配置 14.1 基础知识 14.2 备份 14.3 数据库的迁移 14.4 导
出
和导入文本文件 14.5 日志 14.6 镜像机制 14.7 管理MyISAM数据表 14.8 InnoDB数据表的管理 14.9 MySQL服务器的优化 14.10 ISP数据库管理 第四部分 程序设计 第15章 PHP 15.1 mysql功能模块 15.2 mysqli的类、方法和属性 15.3 把数据库功能打包为一个类 15.4 把SELECT查询结果显示为一个表格 15.5
字符串
、日期、时间、BLOB和NULL 15.6 向关联数据表插入新数据记录 15.7 处理来自HTML表单的输入数据 15.8 分页显示查询结果 15.9 处理层次化数据 15.10 速度优化 15.11 Unicode 15.12 二进制数据(BLOB)和图像 15.13 存储过程 15.14 SP Administrator 第16章 Perl 16.1 编程技巧 16.2 示例:删除无效的数据记录(mylibrary) 16.3 CGI示例:图书管理(mylibrary) 16.4 CGI Unicode示例 第17章 Java(JDBC和Connector/J) 17.1 基础知识 17.2 程序设计技巧 第18章
C语言
18.1 MySQL C API(libmysqlclient) 18.2 Hello,World 18.3 与MySQL服务器建立
连接
18.4 执行SQL命令 18.5 处理二进制数据和特殊字符 18.6
出
错处理 第19章 Visual Basic 6/VBA 19.1 基础知识和术语 19.2 Connector/ODBC选项 19.3 ADO程序设计与Visual Basic 6/VBA 19.4 与MySQL服务器建立
连接
19.5 转换器:从Microsoft SQL Server到MySQL 19.6 VBMySQLDirect 第20章 Visual Basic .NET和C# 20.1 ADO .NET与MySQL之间的通信 20.2 编程技巧 20.3 示例:把新图书记录存入mylibrary数据库 20.4 示例:把图像文件存入和读
出
一个BLOB数据列 第五部分 参考资料 第21章 SQL语法指南 21.1 语法 21.2 操作符 21.3 变量和常数 21.4 MySQL数据类型 21.5 SQL命令汇总表(按功能分类) 21.6 SQL命令指南(按字母表顺序排列) 21.7 SQL函数指南 21.8 GIS数据类型与GIS函数 21.9 与存储过程和触发器有关的语言元素 第22章 MySQL工具和选项 22.1 概述 22.2 通用选项和配置文件 22.3 mysqld程序(服务器) 22.4 mysqld_safe脚本(启动MySQL服务器) 22.5 mysql_install_db脚本(安装mysql数据库) 22.6 mysql_fix_privileges脚本(更新mysql数据库) 22.7 mysql_fix_extensions脚本(重命名MyISAM文件) 22.8 mysql程序(SQL命令解释器) 22.9 mysqladmin程序(日常管理) 22.10 mysqldump程序(数据的备份/导
出
) 22.11 mysqlimport程序(文本导入、批量导入) 22.12 mysqlshow程序(查看信息) 22.13 myisamchk程序(修复MyISAM文件) 22.14 myisampack程序(压缩MyISAM文件) 第23章 MySQL API应用指南 23.1 PHP API(mysql接口) 23.2 PHP API(mysqli接口) 23.3 Perl DBI 23.4 JDBC(Connector/J) 23.5 ADO .NET(Connector/Net) 23.6 C API 第六部分 附录 附录A 术语解释 附录B 本书的配套示例文件 附录C 参考书目
MySQL 5权威指南(第3版)
中
文版 下载地址
内容提要 -------------------------------------------------------------------------------- 本书全面深入地介绍了MySQL的功能,主要内容包括MySQL、PHP、Apache、Perl等组件的安装与功能简介,mysql等一些重要系统管理工具和用户操作界面的使用,MySQL数据库系统设计的基础知识与用不同语言设计MySQL数据库的过程,以及SQL语法、工具、选项、API应用指南,最大限度地帮助读者更快地学习和掌握MySQL数据库系统的设计和使用。本书覆盖了MySQL 5.0,讨论了新的程序设计接口(如PHP 5里的mysqli)和新的系统管理工具。 本书是MySQL数据库管理员和开发人员的必备参考书。 目录 -------------------------------------------------------------------------------- 第一部分 入门 第1章 什么是MySQL 1.1 什么是数据库 1.2 MySQL 1.3 MySQL的不足 1.4 MySQL的版本编号 1.5 MySQL的许可证 1.6 MySQL软件的替代品 1.7 小结 第2章 测试环境 2.1 是Windows还是UNIX/Linux 2.2 在Windows系统上安装MySQL和相关软件 2.3 在SUSE Linux 9.3系统上安装MySQL和相关软件 2.4 在Red Hat Enterprise Linux 4系统上安装MySQL和相关软件 2.5 编译MySQL软件的开发者版本(Linux) 2.6 配置Apache 2.7 配置PHP 2.8 配置MySQL 第3章 初级案例研究:MySQL+PHP 3.1 概述 3.2 数据库的开发 3.3 调查问卷 3.4 问卷调查结果的处理和显示 3.5 改进意见 第二部分 管理工具和用户操作界面 第4章 mysql、mysqladmin和mysqldump 4.1 mysql 4.2 mysqladmin 4.3 mysqldump 第5章 MySQL Administrator和MySQL Query Browser 5.1 安装 5.2 与MySQL服务器建立
连接
5.3 MySQL Administrator 5.4 MySQL Query Browser 第6章 phpMyAdmin 6.1 phpMyAdmin的安装与配置 6.2 用户管理,保护MySQL 6.3 创建和编辑数据库 6.4 查看、插入和编辑数据 6.5 执行SQL命令 6.6 导入和导
出
6.7 服务器管理 6.8 辅助功能 第7章 Microsoft Office和OpenOffice/StarOffice 7.1 安装Connector/ODBC 7.2 Microsoft Access 7.3 Microsoft Excel 7.4 安装Connector/J 7.5 OpenOffice/StarOffice Base 7.6 OpenOffice/StarOffice的Data Source视图 第三部分 基础知识 第8章 数据库设计概论 8.1 参考读物 8.2 数据表类型 8.3 MySQL数据类型 8.4 数据库设计技巧 8.5 规范化 8.6 层次关系的处理 8.7 关系 8.8 主键和外键 8.9 索引 8.10 视图 8.11 示例数据库mylibrary(图书管理) 8.12 示例数据库myforum(网上论坛) 8.13 示例数据库exceptions(用于特殊情况的测试) 第9章 SQL语言入门 9.1 简介 9.2 简单查询(SELECT) 9.3 对查询结果进行排序(ORDER BY) 9.4 筛选数据记录(WHERE,HAVING) 9.5 涉及多个数据表的关联查询(LEFT/RIGHT JOIN) 9.6 合并查询结果(UNION) 9.7 分组查询,统计函数(GROUP BY) 9.8 修改数据(INSERT、UPDATE和DELETE) 9.9 创建数据表、数据库和索引 第10章 SQL解决方案 1
编程之法学习笔记——1.1
字符串
的旋转
题目描述:给定一个
字符串
,要求将
字符串
前面的若干个字符移到
字符串
的尾部。例如,将
字符串
"abcdef"的前3个字符'a','b'和'c'移到
字符串
的尾部,那么原
字符串
将变成"defabc"。新建空间法:新建一个新的
字符串
,长度与原
字符串
长度相同为n,设移动字符数为x。将原
字符串
的0~(x-1)位的字符移动到新
字符串
的(n-x+1)~n位。原
字符串
中
的x~n位的字符移动到新
字符串
的0~(n-x)位。...
c语言
中
常用的输入输
出
函数有哪些,
C语言
中
常用的输入和输
出
函数
C语言
中
常用的输入和输
出
函数2020年03月11日|萬仟网IT编程 |我要评论1. scanf()函数 (Scan Format) + 函数原型: + 函数作用:从标准输入流 stdin (标准输入设备,一般指向键盘)读取输入,并根据提供的 format 来浏览输入; + 注意点:该函数的返回值是成功读入的数据项数(int 类型),当遇到了“文件...
二级考试
c语言
中
星号与字母 题型总结,【全国计算机二级考试】
C语言
备考锦囊,最后一次抢救你!...
原标题:【全国计算机二级考试】
C语言
备考锦囊,最后一次抢救你!计算机二级考试说来就来距离考试仅剩一个晚上你准备好突破自我拿得高分了吗?贴心的学管君担心小可爱们在假期玩的太嗨迎新又太忙忘记刷题了特此献上2017年9月份计算机二级【
c语言
】备考锦囊 计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级
中
的一个等级,考核计算机基...
C语言
69,372
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章