- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我从 Google 搜索结果中推断出 strings.h(来自 here)适用于 UNIX 系统。我想用主机操作系统是否为 Linux/UNIX 的宏观检查来包装以下行。听到有关它的建议将不胜感激。提前致谢。
#include <strings.h>
最佳答案
strings.h
只包含几个函数,其中大部分只是标准库中函数的不同名称(例如 bcmp()
<--> memcmp()
)。如果您的代码使用这些函数,而不是到处乱扔 #ifdef
为什么不编写您自己的集合呢?
然后每个人都可以使用它们并愉快地免费进行条件编译。
这是公共(public)领域中的一组未完全测试的函数,您可以自行承担使用风险:
#include <string.h>
#include <ctype.h>
int bcmp(const void * p1, const void * p2, size_t n)
{
return memcmp( p1, p2, n);
}
void bcopy(const void * src, void * dst, size_t n)
{
memmove( dst, src, n); /* note different order of args - yuck */
}
void bzero(void * p, size_t n)
{
memset( p, 0, n);
}
char *index(const char * s, int c)
{
return strchr( s, c);
}
char *rindex(const char * s, int c)
{
return strrchr( s, c);
}
int strcasecmp(const char* s1, const char* s2)
{
for (;;) {
int c1 = tolower( *((unsigned char*) s1++));
int c2 = tolower( *((unsigned char*) s2++));
if ((c1 != c2) || (c1 == '\0')) {
return( c1 - c2);
}
}
}
int strncasecmp(const char* s1, const char* s2, size_t n)
{
for (; n != 0; --n) {
int c1 = tolower( *((unsigned char*) s1++));
int c2 = tolower( *((unsigned char*) s2++));
if ((c1 != c2) || (c1 == '\0')) {
return( c1 - c2);
}
}
return( 0);
}
int ffs(int v)
{
unsigned int x = v;
int c = 1;
/*
* adapted from from
* http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightBinSearch
*
* a modified binary search algorithm to count 0 bits from
* the right (lsb). This algorithm should work regardless
* of the size of ints on the platform.
*
*/
/* a couple special cases */
if (x == 0) return 0;
if (x & 1) return 1; /* probably pretty common */
c = 1;
while ((x & 0xffff) == 0) {
x >>= 16;
c += 16;
}
if ((x & 0xff) == 0) {
x >>= 8;
c += 8;
}
if ((x & 0x0f) == 0) {
x >>= 4;
c += 4;
}
if ((x & 0x03) == 0) {
x >>= 2;
c += 2;
}
c -= (x & 1);
c += 1; /* ffs() requires indexing bits from 1 */
/* ie., the lsb is bit 1, not bit 0 */
return c;
}
关于c++ - strings.h 并用宏检查包装这个宏是否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647723/
我有一个Perl脚本,要求用户输入密码。当用户键入字符时,我该如何仅回声“ *”代替用户键入的字符? 我正在使用Windows XP / Vista。 最佳答案 您可以玩Term :: ReadKey
This question already has answers here: How to urlencode a querystring in Python? (13个回答) 7年前关闭。 我正在
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
我希望能够检测 h1 中的“/”标签,并将其替换为 ,其中.slash将充当分隔符。 var div = $('h1'); div.html(div.html().replace(/\//g, '/
我是一名 Java 初学者,目前正在寻找一种分割字符串的方法 message根据分隔符 (.) 划分为子字符串。理想情况下,我有单个句子,并且我想将每个句子包装在 HTML 标签中,即。 e. 。
MySql:我的产品表设置如下: pg_id |页面名称 1 |披萨馅饼 2 | child 菜单 Php:在循环遍历 MySQL 表中的记录时回显 html。 "; ?> 我
我正在尝试一次读取一个文本文件并将每一行打印到终端窗口。我正在使用 g++ 在 mac 上编译,例如 g++ cpp3.cpp -o cpp3。 文本文件如下所示: 20100000001 20100
这个问题在这里已经有了答案: sed fails with "unknown option to `s'" error [closed] (1 个回答) 关闭 7 年前。 我有个小问题。 我尝试用文
我有一个非常具体的问题。我正在使用 Debian。我有一个 FTP 文件夹,应用程序将在其中上传 pdf 文件,该文件将存储在 ftpfolder/EMAIL_ADDRESS 中,文件名将是 CURR
我尝试使用其 before 和 after 值的 means 填充 NaN 单元格。 type date v1 v2 0 a 2018-09 215
我在上述模拟中使用 SHM 的标准微分方程,a = -w^2*x。我正在使用 Python,并以 odeint 作为求解器。尽管对其进行了多次编辑,我仍然将输出视为直线而不是正弦曲线。代码是: fro
System.out.print("Enter the message to encrypt: "); message = s.next().toString(); // this mess
我有一个主要的 LinearLayout ,在 main.xml 文件中,在 Activity 中设置 ( setContentView )。入主LinearLayout我想添加 1-X 自定义 Li
并用括起来是否安全?
一些用户生成的文本(可能包含脚本/代码)将向公众展示。如果我过滤掉所有 和标记并用 将结果文本括起来和 ,用户提交的脚本有机会被执行吗? 请给我一个如何破解这个保护方案的例子。 最佳答案 Is it
{abc def ghi} 我已经通过在比较它是否是 { 或 } 之前先跨度包装所有字符来完成此操作。但这太慢了,我需要反转该过程,是否可以获取相对于父 div 的 cha
我想创建一个自定义 UITabBarItem 并使用 xib 文件设置其 UI,就像常规 UIView 一样。 我尝试在 UITabBarItem 上创建一个子类,但创建 xib 文件的选项不可用。
我有以下 HTML 结构: Text 1 Text 2 Text 3 Text 4 Text 5 我想找到一个包含“4”
我正在逐字创建着色工具。基本上用户可以从单词中选择几个字母并将它们分开着色,因此一个单词可以有 2 种或更多颜色。 为了跟踪所有单词,它们都有 ID,我想知道我怎么知道选择了哪些字母以及所选单词有哪些
我是 Python 的新手。我确实有一个包含单词列表的文件。它们包含丹麦字母 (ÆØÅ),但 re.compile 不理解这些字符。该函数按每个 ÆØÅ 拆分单词。文本是从 Twitter 和 Fac
C#如何在字符串中找到多余的)或(括号,并替换为@ 示例输入 )(more))) ((((more))) ((((more)) (about)((index)(more))) (about)((ind
我是一名优秀的程序员,十分优秀!