我有一个问题, 我正在尝试这个
if (strncmp(m_DSServer, "TCP:", 4) != 0 )
return DS_AS_PROCESS_NAME_INCORRECT;
if
if(strchr(char *(m_DSServer[4]),':')== NULL) //here it is giving me primary-expression before 'char
return DS_AS_PROCESS_NAME_INCORRECT;
else
if(strchr(m_DSServer[4],'/')== NULL)
return DS_AS_PROCESS_NAME_INCORRECT;
答案 0 :(得分:2)
如果您想从5.字符开始搜索,请执行
strchr(&m_DSServer[4],':')
答案 1 :(得分:1)
首先,具有type(value)
形式的强制转换语法主要是C ++语法。 C不支持它。你的问题被标记为[C],而不是[C ++]。在C语言中,当您想要执行强制转换时,必须使用(type) value
语法。
其次,即使在C ++中,type(value)
强制语法要求type
部分由“紧凑”类型说明符组成,即使在C ++中,也不能在此使用char *
上下文。
第三,无论您使用何种语法,通过将m_DSServer[4]
值(显然是char
)转换为指针类型,您完全不清楚要做什么。这没有任何意义。
如果您想从字符串:
的第4个位置开始搜索m_DSServer
个字符,则应该执行strchr(&m_DSServer[4], ':')
之类的操作。没有必要的演员表。
答案 2 :(得分:0)
if (strchr(char *(m_DSServer[4]),':') == NULL)
^^^^^^^^^^^^^^^^^^^^^
char *(m_DSServer[4])
是无稽之谈。我的猜测是你要从第4个字符开始搜索:
的字符串。在这种情况下,您需要一个指向第4个字符的指针:
if (strchr(m_DSServer+4,':') == NULL)
^^^^^^^^^^^^