- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在这个作业中,我必须在 c 中创建一个 tokeniser 函数,它将一个字符串的内容复制到另一个字符串中,同时删除空格。它返回应该查找下一个标记的位置。
token 是一串字符或单个运算符字符。
在我的尝试中,检测并绕过空格的计数器以某种方式阻止了将内容复制到第一个标记之后的结果字符串中。这是我的代码:
int checkOperators(char str[], char operators[], int i){
int counter = 0;
while(operators[counter]!='\0')
{
if(str[i]==operators[counter]) return 1;
counter++;
}
return 0;
}
int tokenise_ops(char str[], int start, char result[], char operators[]){
int i = start;
int j = start;
while(str[i]==' ' && str[i]!='\0'){
i++;
}
if(checkOperators(str,operators,i)==1)
{
result[j]= str[i];
i++;
return i;
}
while(str[i]!='\0')
{
result[j]= str[i];
i++;
j++;
if(str[i]==' ' || checkOperators(str,operators,i)==1) return i;
}
return -1;
}
int main()
{
char str[]="26.6 * 7.9 + 3";
char result[256];
char operators[]={'+','-','*','/','^','\0'};
int start=0;
start = tokenise_ops(str,start,result,operators);
while ( start != -1 )
{
printf("%s\n", result);
start = tokenise_ops(str, start, result,operators);
}
printf("%s\n", result);
return 0;
}
最佳答案
您的标记化函数可以是:
int tokenise_ops(char str[], int start, char result[], char operators[])
{
int i = start;
int j = 0;
while ((str[i]==' ') && (str[i]!='\0'))
{
i++;
}
while(str[i]!='\0')
{
if(str[i]==' ' || checkOperators(str,operators,i)==1)
{
printf("Test2: %c\n", str[i]);
result[j] = '\0';
return i;
}
else
{
printf("Test: %c\n", str[i]);
result[j] = str[i];
i++;
j++;
}
}
result[j] = '\0';
return -1;
}
j
是result
索引,所以每次调用都要从0
开始result
在解析整个 str
时必须以 null 结尾。关于c - 寻求调试帮助,为什么这个分词器没有正确复制数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40235367/
是否可以使用 av_seek_frame() 函数查找 I-Frame。 我面临的问题是,如果我在 AVC 文件中查找,如果我不刷新缓冲区,我会收到很多噪音。如果我刷新缓冲区,解码器不会返回一个帧,直
在我处理 SL3/SL4 应用程序并开始使用字体时,我发现缺乏有关字体策略的文档和最佳实践。例如: 是否有常见的后备字体 支持的字体集(Arial、Comic 无 MS 等)?是否有一组关于 Wind
是否有一个我可以运行而什么都不做(或很少做)而永远不会出错的命令? 我需要一些东西来测试海豚。 最佳答案 注释什么都不做(但如果根本没有命令,您的数据库驱动程序可能会提示): /* Hello, wo
我正在寻找与 Delphi (7) 一起使用的 FOSS SHA1 实现。 最好是一些小的东西,甚至可能是独立的 SHA1,而不是过去的一个巨大的库。易于安装和使用固然很好,但可靠性当然是第一位的。
团队, 我是 Azure 的初学者,对 Blob 存储日志有一些疑问 我指的是这个链接http://blogs.msdn.com/b/windowsazurestorage/archive/201
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我在周末发现了 Akavache,它看起来是一个强烈推荐的用于在 Win8 和 WP8 上缓存项目的解决方案。 但是,我找不到任何实际示例或如何使用它的文档! 有人可以分享任何示例项目或文档吗? 最佳
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
Delphi XE2 和 MySql。 我的 previous question导致建议我应该使用 MySql 的 native TIMESTAMP 数据类型来存储日期/时间。 不幸的是,我似乎找不到
DDX 技术是为将资源与类成员链接起来而创建的(例如)。在我的解决方案中,我需要在不存在于类成员 CCtreeCtrl 的资源中的 myCCtreeCtrl(CCtreeCtrl 实例)之间建立连接。
我遇到了这个问题: A shoemaker has N jobs (orders from customers) to execute. The shoemaker can work on only
typedef union { float flts[4]; struct { GLfloat r; GLfloat theta; GL
我有两个我想组合的以下形状的数组。 数组: arr1 = [["apple", "aardvark"], ["banana", "beach"]] arr2 = ['A', 'B'] 期望的结果: [
这个问题已经asked before , 但每次接受的答案只是辞职,使用 Application.MacroOptions ( VBA6 ) ( VBA7 ) 提供功能描述,但此信息实际上并未显示为工
如标题所述,-ss命令不适用于某些设备,例如华为 Mate 10。 这是我正在使用的命令以及如何获取值: Format formatter = new SimpleDateFormat("00:" +
我被指派负责修订当前的报告服务身份验证流程。目的是保持必要的安全级别,并简化授予对各个报告的访问权限的维护/配置。 我无权访问域 Controller 以修改或创建新的 AD 组。我必须与当前存在的组
我正在尝试使用 ashx 处理程序作为 HTML5 视频源。我可以做到这一点,但我无法在已经缓冲的视频上进一步前进。 我可以在使用标准 MP4 源的网络选项卡上看到向前搜索会创建另一个请求,但使用处理
#include #include class Test { char name[10]; int data; public: void getData()
您是否知道任何具有外键约束和/或提供事务支持的 SQLite 替代方案(基于可移植/平面文件/无服务器)? 最佳答案 从版本 3.6.19 开始,SQLite supports foreign key
我正在寻找一个简单的脚本,我可以在 bash 文件中使用它来检查是否有任何可用的系统更新。 我从 #!/bin/bash clear updates=$(apt list upgradeable) i
我是一名优秀的程序员,十分优秀!