`
xusaomaiss
  • 浏览: 615413 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

(筆記) 如何使用C語言實現split()? (C/C++) (C) (JavaScript)

阅读更多

Abstract
寫過JavaScript或ASP的朋友,應該常常用到split()這個函數,他可以輕易地將string轉成array,C語言並沒有相對應的函數,只有strtok()較為接近,稍微加工後,就可以在C語言實現split()。

Introduction
使用環境 : IE 7.0 + Visual Studio 2008

在JavaScript,可以輕易的將string轉成array。

split.htm / JavaScript

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1  <!--  
2  (C) OOMusou 2009 http://oomusou.cnblogs.com
3  
4  Filename    : split.htm
5  Compiler    : IE 7.0
6  Description : javaScript's split()
7  Release     : 05/09/2009
8  -->
9  <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
10  < html xmlns ="http://www.w3.org/1999/xhtml" >
11  < head >
12    < script language ="javascript" type ="text/javascript" >
13      function Button1_onclick() {
14        str =   " 10,20,30 " ;
15        arr = str.split( " , " );
16       
17        for (i = 0 ; i <   3 ; i ++ )
18          document.getElementById( " div1 " ).innerHTML += arr[i] +   " <br> " ;
19      }
20    </ script >
21  </ head >
22  < body >
23    < input id ="Button1" type ="button" value ="button" onclick ="return Button1_onclick()"   />
24    < div id ="div1" >
25    </ div >
26  </ body >
27  </ html >


split.c / C

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1  /*  
2  (C) OOMusou 2009 http://oomusou.cnblogs.com
3  
4  Filename    : split.c
5  Compiler    : Visual C++ 9.0
6  Description : Demo how to implement split() in C
7  Release     : 05/09/2009 1.0
8  */
9  
10  #include < stdio.h >
11  #include < string .h >
12  
13  void split( char   ** arr, char   * str, const   char   * del) {
14    char   * s = strtok(str, del);
15   
16    while (s != NULL) {
17      * arr ++   = s;
18      s = strtok(NULL, del);
19    }
20  }
21  
22  int main() {
23    char   * str =   " 10,20,30 " ;
24    char   * arr[ 3 ];
25    const   char   * del =   " , " ;
26    int i =   0 ;
27    split(arr, str, del);
28   
29    while (i < 3 )
30      printf( " %s\n " , * (arr + i ++ ));
31  }


執行結果
split

將strtok()稍微加工,將結果塞到array中,就跟JavaScript的split()一模一樣了。

完整程式碼下載
split_javascript.7z (JavaScript)
split_c.7z (C)

See Also
(原創) 如何使用Verilog實現split()? (SOC) (Verilog PLI)

 

 

http://www.cnblogs.com/oomusou/archive/2009/05/09/c_split.html

分享到:
评论

相关推荐

    C/C++程序设计学习与实验系统 V2008.13.part1

    C/C++入门教程(每章配有同步实验)》融入了作者多年的教学和学习经验、编程建议、编程感悟、读书笔记功能等,同时,为了便于C语言学习,加入C语言流程控制语句演示动画、C语言学习指导、可以方便地进行网络上和本机...

    C语言和C++Builder学习笔记.rar_C++笔记_c++学习笔记_c/C++_学习笔记_编程语言

    【C语言和C++Builder学习笔记】 C语言和C++是两种广泛使用的编程语言,它们在软件开发领域占据着重要地位。C语言以其简洁、高效和底层操作能力著称,而C++则在C的基础上引入了面向对象编程,极大地扩展了其应用范围...

    PHP调用C/C++生成的.so库的详细笔记

    这篇笔记主要探讨如何在PHP中调用由C或C++编译生成的动态链接库(.so文件),以此实现PHP与底层系统的深度交互。 首先,我们要了解.so文件的性质。在Linux系统中,.so文件是共享对象(Shared Objects),相当于...

    C/C++开发实战笔记

    《C/C++开发实战笔记》是一本专注于C/C++编程实践和学习心得的资料,旨在帮助初学者和有经验的开发者巩固基础知识,提升实战技能。作者通过自身的学习历程和编程经验,提炼出了一系列的关键知识点,涵盖了C/C++语言...

    达内C/C++笔记

    C/C++是两种广泛使用的编程语言,它们在计算机科学和软件开发领域占有重要地位。C语言是一种高效的、低级的、结构化的编程语言,适合系统编程和嵌入式开发。而C++是C语言的扩展,引入了面向对象的编程概念,使得它更...

    c/c++博客笔记pdf////

    c/c++博客笔记pdf总结 c/c++博客笔记pdf总结 c/c++博客笔记pdf总结 c/c++博客笔记pdf总结 c/c++博客笔记pdf总结 c/c++博客笔记pdf总结 c/c++博客笔记pdf总结

    linux c/c++基础学习资料(百度云链接和提取码)

    在压缩包文件中,"linux cc++"可能包含了上述所有领域的教程、笔记或实践项目,你可以通过学习这些资料逐步提升你的Linux C/C++技能。对于初学者来说,建议先从基础概念入手,逐步深入到复杂的编程环境和高级算法,...

    达内 C/C++课件 适合初学者

    《C/C++编程初学者指南——达内科技课件解析》 C/C++是计算机科学领域中的基础且强大的编程语言,对于任何想要深入理解计算机工作原理或者追求高性能应用开发的人来说,学习C/C++是必不可少的步骤。达内科技作为...

    2022年C语言/C++学习笔记~ C++资源

    C语言和C++是计算机编程领域中的两种基础且强大的编程语言。C语言,由Dennis Ritchie...对于想要进入IT行业的初学者来说,掌握C/C++意味着能够处理底层系统编程,也能更好地理解和使用其他基于C++的现代编程框架和库。

    程序员面试宝典(C/C++&数据结构&网络&数据库&操作系统)

    程序员面试宝典(C/C++&数据结构&网络&数据库&操作系统)

    C/C++培训课程笔记

    在"C/C++培训课程笔记"中,我们可以深入探讨两种广泛使用的编程语言——C语言和C++。C语言是计算机科学的基础,而C++是其增强版,加入了面向对象编程的概念。以下是对这些主题的详细说明: 1. **C语言基础知识**: ...

    c/c++程序设计学习与实验系统

    支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期限制,重新集成在VISTA、WINDOWS ...

    C/C++程序设计学习与实验系统 2010.part2

    C/C++程序设计教程(配有同步实验、流程控制语句动画演示、提供教程中所有程序实例、实验、作业中的源代码(全部用VC6编译器调试通过))》融入了作者多年的教学和学习经验、编程建议、编程感悟,新增读书笔记功能有利...

    极品C/C++学习笔记(简单明了)--博士生导师讲授

    这是C++学习笔记,非常的全(对了,我先传个上,有机会再传下,下我还没有找到,找到的话,一定上传),而且非常典型。是硕士生专用笔记。 学习计算机的人,都知道,C/C++可以称得上是最“正宗”的语言。只要把...

    BDS/GPS导航定位C/C++从Txt文件读取和写入,个人代码笔记

    BDS/GPS导航定位C/C++从Txt文件读取和写入,个人代码笔记,供测绘编程人员初学者参考

    C/C++程序设计学习与实验系统 2010.part1

    C/C++程序设计教程(配有同步实验、流程控制语句动画演示、提供教程中所有程序实例、实验、作业中的源代码(全部用VC6编译器调试通过))》融入了作者多年的教学和学习经验、编程建议、编程感悟,新增读书笔记功能有利...

    《C/C++程序设计学习与实验系统》

    现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期...

    C和C++API中文帮助文档可搜索版.CHM版_C语言API函数大全语法着色版.CHM版

    这是“C和C++API中文帮助文档.chm”和“C语言API函数大全语法着色版.chm”,这是两本很好的资源。 网上的“C和C++API中文帮助文档.chm”一般是不能搜索的,而本人提供的是可以在“索引”中查找的,非常实用,用...

    C++笔记-适合有c语言基础-课程基础资源

    本资源是为具有C语言基础的学生准备的C++笔记,涵盖了C++语言的基本概念、语法、对象和类的创建、函数和操作符的使用、内存管理、输入输出流等方面的知识点。 类和对象的创建 在C++中,类是抽象的,需要通过对象来...

    c/c++笔记

    我的一些 c/c++笔记

Global site tag (gtag.js) - Google Analytics